从 Laravel 4 中的 MSSQL 存储过程读取多个结果集
Posted
技术标签:
【中文标题】从 Laravel 4 中的 MSSQL 存储过程读取多个结果集【英文标题】:Reading multiple result set from MSSQL stored procedure in Laravel 4 【发布时间】:2014-04-23 19:09:56 【问题描述】:我正在从 MSSQL Server 2012 中的存储过程中获取数据(使用 SQLSRV 驱动程序),它返回多个结果集,但我只能使用以下代码读取第一个结果集
$res = DB::select('EXEC Procedure_Name ?,?,?,?',
array(
$Prama1,
$Prama2,
$Prama3,
$Prama4
));
这会返回四个结果集,但是当我打印 $res 时,我只得到了第一个结果集,如何读取其他结果集?任何提示都会有很大帮助。
更新:
在***上找到了一些线索并编译了这个解决方案,不知道它是否是实现这一目标的优化方法。如果您有更好的方法,请分享。
$stmt = $db->prepare("EXEC Procedure_Name ?,?,?,?");
$type = "Type";
$fromDate = "01-Mar-2014";
$toDate = "15-Mar-2014";
$adminId = 0;
$stmt->bindParam(1, $type);
$stmt->bindParam(2 , $fromDate);
$stmt->bindParam(3 , $toDate);
$stmt->bindParam(4 , $adminId);
$stmt->execute();
$search = array();
do
$search = $stmt->fetchAll();
print '<pre>'; print_r($search);
while ($stmt->nextRowset());
【问题讨论】:
有什么理由不使用 Eloquent 和 QueryBuilder? 【参考方案1】:我不记得了,但如果可以的话,尝试使用:
设置编号
在您的存储过程声明中。
我认为你可以像你一样使用默认的 select() 函数:
DB::select('EXEC Procedure_Name ?,?', $bindings)
并检索结果数组
【讨论】:
以上是关于从 Laravel 4 中的 MSSQL 存储过程读取多个结果集的主要内容,如果未能解决你的问题,请参考以下文章