从Laravel 4中的MSSQL存储过程读取多个结果集

时间:2014-03-18 08:14:06

标签: laravel laravel-4

我从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());

1 个答案:

答案 0 :(得分:0)

我不记得了,但如果可以,请尝试使用:

  

设置NOCOUNT

存储过程声明中的

我认为您可以使用默认的select()函数:

DB::select('EXEC Procedure_Name ?,?', $bindings)

并检索结果数组