在 Laravel 5.3 中从 SQL Server 获取多个结果集

Posted

技术标签:

【中文标题】在 Laravel 5.3 中从 SQL Server 获取多个结果集【英文标题】:Fetch multiple resultset from SQL Server in Laravel 5.3 【发布时间】:2018-08-01 01:46:57 【问题描述】:

这里是代码 $exec = "EXEC RPT_TEST_2resultSet"; $resultSet = \DB::select($exec);

SP 正在返回 3 个结果集。但是在 php 中它只打印第一组结果集。如何获取另外 2 组结果集?尝试了其他人建议的解决方案。遇到了一些其他错误。

【问题讨论】:

已经尝试过了,它给出了一些其他错误 SQLSTATE[IMSSP]: The given attribute is only supported on the PDOStatement object. @LuisfelipeDejesusMunoz,如果您没有阅读 SQLSERVER 而不是 mysql,这甚至不是重复的 【参考方案1】:

做一个foreach

检查示例:

foreach ($resultSet as $result) 
   echo $result['someDataFromResult'];

这将重复 $resultSet 数组中的数据量

【讨论】:

【参考方案2】:

找到了解决这个问题的简单方法。

$pdo = \DB::connection()->getPdo();
$sql = 'EXEC Test_SP_MultiResultSet';
$stmt = $pdo->query($sql);
do 
   $rows = $stmt->fetchAll(\PDO::FETCH_NUM); // Keys will be start from zero , one, two
   $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC); // Column names will be assigned for each value

   if ($rows) 
    $sheetData[] = $rows;
   
 while ($stmt->nextRowset());

Source Link

【讨论】:

以上是关于在 Laravel 5.3 中从 SQL Server 获取多个结果集的主要内容,如果未能解决你的问题,请参考以下文章