ホームページ  >  記事  >  データベース  >  PDO_MYSQLND を使用して複数のクエリから複数の結果セットを取得するにはどうすればよいですか?

PDO_MYSQLND を使用して複数のクエリから複数の結果セットを取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-20 04:11:02916ブラウズ

How Can I Retrieve Multiple Result Sets from Multiple Queries Using PDO_MYSQLND?

PDO を使用した複数のクエリの実行

PHP バージョン 5.3 では、PDO_MYSQL ドライバーが PDO_MYSQLND に置き換えられ、複数のクエリのサポートが導入されました。ただし、これらのクエリから複数の結果セットを取得すると、混乱が生じる可能性があります。

課題:

PDO_MYSQLND の query() メソッドを使用して複数の SELECT クエリを実行すると、最初の結果セットのみが返されます。例:

$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);

このコードは、最初のクエリの結果のみを返します。

array(1) {
  [0]=>
  array(1) {
    [1]=>
    string(1) "1"
  }
}

解決策:

後続の結果セットを取得するには、PDOStatement::nextRowset() メソッドを使用する必要があります。

$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));

これにより、2 番目のクエリの結果が返されます。

実装:

複数のクエリが 1 つの配列ですべての結果を返した方が便利なので、この実装は少し特殊に見えるかもしれません。ただし、この設計では、異なるフェッチ スタイルを使用して各結果セットをフェッチできます。

以上がPDO_MYSQLND を使用して複数のクエリから複数の結果セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。