我从MSSQL Server 2012中的存储过程中获取数据(使用SQLSRV驱动程序),它返回多个结果集,但我能够使用以下代码读取第一个结果集
$res = DB::select('EXEC Procedure_Name ?,?,?,?',
array(
$Prama1,
$Prama2,
$Prama3,
$Prama4
));
这会返回四个结果集,但是当我打印$ res时,我只得到第一个结果集,如何读取其他结果集?任何提示都会有很大的帮助。
更新
在stackoverflow上找到一些线索并编译此解决方案,不知道它是否是实现此目的的优化方法。如果你有更好的方法,请分享。
$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());
答案 0 :(得分:0)
我不记得了,但如果可以,请尝试使用:
存储过程声明中的设置NOCOUNT
。
我认为您可以使用默认的select()函数:
DB::select('EXEC Procedure_Name ?,?', $bindings)
并检索结果数组