gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:00:15 24 4
gpt4 key购买 nike

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

最佳答案

我不太记得了,但是,如果可以的话,尝试使用:

SET NOCOUNT ON

在存储过程声明中。

我认为你可以像你一样使用默认的 select() 函数:

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

并检索结果数组

关于laravel - 从 Laravel 4 中的 MSSQL 存储过程读取多个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22473684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com