2

我正在努力使用返回多个结果集的 MYSQL (5.5.35) 存储过程,我想知道是否有人可以解释出了什么问题。SQL 如下所示

SELECT 't1' as tableName, tbl1.* FROM table1 tbl1;
SELECT 't2' as tableName, tbl2.* FROM table2 tbl2;
SELECT 't3' as tableName, tbl3.* FROM table3 tbl3;
SELECT 't4' as tableName, tbl4.* FROM table4 tbl4;
SELECT 't5' as tableName, tbl5.* FROM table5 tbl5;
SELECT 't6' as tableName, tbl6.* FROM table6 tbl6;

然后我有一些PHP可以做到这一点......

 $sth =$dbh->prepare('CALL getAllRecords()');
 $sth->execute();

 $i = 1;
 do {
    echo "<h3>$i Set</h3>";
    $i++;
    $rows = $sth->fetchAll();
 } while ($sth->nextRowset());

人们希望在浏览器中看到以下内容

1 Set
..
6 Set

但相反,它会运行 7 个结果集,这又会导致异常

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error'

我在这里错过了一些非常简单的东西吗?

4

1 回答 1

0

似乎类似于https://stackoverflow.com/a/26381914/2208000。解决方案是检查列数,如果为 0,则中断循环。这对我有用,但你的里程可能会有所不同。

于 2015-09-03T21:27:32.930 回答