PDOStatement::nextRowset — 複数行セット ステートメント ハンドルの次の行セットに進みます (PHP 5 >= 5.1.0、PECL pdo >= 0.2.0)
bool PDOStatement::nextRowset ( void )
一部のデータベース サービスは、複数の行セット (結果セットとも呼ばれます) を返すストアド プロシージャをサポートしています。
PDOStatement::nextRowset() を使用すると、PDOStatement オブジェクトと連携して 2 番目以降の行セットにアクセスできます。上記の各行セットには、異なる列セットを含めることができます。
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
次の例は、3 つの行セットの MULTIPLE_ROWSETS を返すストアド プロシージャを呼び出す方法を示しています。 do / while ループを使用して PDOStatement::nextRowset() メソッドをループし、 false を返し、行セットが返されなくなったらループを終了します。
<?php$sql = 'CALL multiple_rowsets()';$stmt = $conn->query($sql);$i = 1;do { $rowset = $stmt->fetchAll(PDO::FETCH_NUM); $rowset) { printResultSet($rowset, $i) } $i++;} ($stmt->nextRowset());function printResultSet(&$rowset, $i) { print "結果セット $i:n"; foreach ($rowset as $row) { foreach ($row as $col) {印刷 $col . "t" } 印刷 "n";}?>
上記の出力例は次のようになります。
結果セット 1:アップルレッドバナナイエロー結果セット 2:オレンジオレンジ 150バナナイエロー 175結果セット 3:ライムグリーンアップルレッドバナナイエロー