ホームページ  >  記事  >  バックエンド開発  >  PHP/mysqli でストアド プロシージャから複数の結果セットを取得するにはどうすればよいですか?

PHP/mysqli でストアド プロシージャから複数の結果セットを取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 18:45:02782ブラウズ

How do you retrieve multiple result sets from a stored procedure in PHP/mysqli?

PHP/mysqli でストアド プロシージャを使用して複数の結果セットを取得する

PHP/MySQLi で複数の結果セットを使用してストアド プロシージャを実行するには注意が必要です取り扱い。ストアド プロシージャの実行後に 2 番目の結果セットに進むには、次の手順を実行する必要があります:

  1. Use mysqli_stmt_execute: mysqli_stmt_execute.
  2. を使用してストアド プロシージャを実行します。最初の結果セットをフェッチします: mysqli_stmt_get_result を呼び出して最初の結果セットを取得し、fetch_assoc、fetch_array、または fetch_row を使用してそのデータを読み取ります。
  3. 次の結果セットに移動します: 読み取り後最初の結果セットの場合、mysqli_stmt_next_result を呼び出して次の結果セットに移動します。
  4. 2 番目の結果セットをフェッチします。 mysqli_stmt_get_result を再度呼び出して 2 番目の結果セットを取得し、そのデータを読み取ります。

PHP/MySQLi を使用したコード例を次に示します。

<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row = $result1->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

// Move to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

mysqli_stmt_close($stmt);</code>

このコードは、指定されたストアド プロシージャの両方の結果セットからデータを正常に取得して出力します。

以上がPHP/mysqli でストアド プロシージャから複数の結果セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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