PDO での複数のクエリの管理
PDO では、PDO_MYSQLND ドライバーを介して複数のクエリを同時に実行するためのサポートが導入されました。ただし、これらのクエリから複数の結果セットを取得することには課題があります。
次のコード サンプルを考えてみましょう:
$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);
このコードを実行すると、最初の SELECT クエリの結果セットのみが返されます。 2 番目の SELECT クエリの結果にアクセスするには、PDOStatement::nextRowset メソッドを使用する必要があります。
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
PDOStatement::nextRowset を使用すると、複数の結果セットを反復処理して、それらを個別に処理できます。
この実装は珍しいように思えるかもしれませんが、さまざまな FETCH スタイルを個々のクエリに適用できるため、柔軟性が得られます。ただし、すべての結果セットが 1 つの配列で返されれば、より簡単になります。
以上が同時の PDO クエリから複数の結果セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。