PDO 複数のクエリから複数の結果セットを取得する
PDO_MYSQLND ドライバーは、PHP バージョン 5.3 で複数のクエリのサポートを導入しました。これにより、ユーザーは複数の SQL クエリを一度に実行できます。ただし、これらのクエリからすべての結果セットを取得するのは困難な場合があります。
問題ステートメント
クエリ "SELECT 1; SELECT 2;"両方のクエリを実行しますが、最初のクエリの結果セットのみが返されます。 2 番目の結果セットは破棄されているようです。
解決策
複数の結果セットを取得するには、PDOStatement::nextRowset メソッドを使用する必要があります。このメソッドは、カーソルを次の行セットの先頭に進めます。最初のクエリの後に nextRowset を呼び出すことで、ユーザーは 2 番目のクエリの結果セットにアクセスできます。
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
これにより、2 番目のクエリの結果セットが返されます。
利点と欠点
この実装では、異なる FETCH スタイルを使用して各クエリの結果をフェッチできます。ただし、単純に 1 つの配列内のすべての結果セットを返す実装よりも複雑になる可能性があります。それにもかかわらず、複数の結果を柔軟に処理できる機能は、シナリオによっては貴重な場合があります。
以上が単一の PDO MySQL クエリから複数の結果セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。