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

DDD
リリース: 2024-11-20 04:11:02
オリジナル
927 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート