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 に答える