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

Linda Hamilton
リリース: 2024-11-01 10:34:02
オリジナル
717 人が閲覧しました

How do you Access Multiple Result Sets from Stored Procedures in PHP/MySQLi?

PHP/MySQLi のストアド プロシージャで複数の結果セットを利用する

ストアド プロシージャには複数の結果セットを含めることができ、多様なデータを取得できます1 回の実行で設定されます。ただし、mysqli を使用した PHP では後続の結果セットにアクセスするのが困難になる場合があります。この質問では、mysqli を使用してストアド プロシージャから 2 番目の結果セットを取得しようとしたときに発生した特定の問題について詳しく掘り下げています。

提案された解決策には次の手順が含まれます。

  1. 準備そしてストアド プロシージャを実行します。
    ステートメントを準備し、入力パラメーターをそれにバインドします。次に、ストアド プロシージャを実行します。
<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);</code>
ログイン後にコピー
  1. 最初の結果セットを取得します (オプション):
    2 番目の結果セットに移動する前に、次のことができます。 mysqli_stmt_get_result() を使用して最初の結果セットを取得することを選択します。後続の結果のみに興味がある場合、このステップはオプションです。
  2. 次の結果セットに移動:
    次の結果セットに進むには、mysqli_stmt_next_result() を使用します。
  3. 2 番目の結果セットを取得します:
    mysqli_stmt_get_result() を使用して 2 番目の結果セットを取得します。
<code class="php">// Move to the second result set
mysqli_stmt_next_result($stmt);

// Retrieve the second result set
$result2 = mysqli_stmt_get_result($stmt);

// Fetch and print data from the second result set
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}</code>
ログイン後にコピー
  1. ステートメントを閉じる:
    すべての結果セットが取得されたら、ステートメントを閉じます。

このメソッドを使用すると、mysqli を使用して PHP のストアド プロシージャによって返された複数の結果セットに効率的に移動してアクセスできます。

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

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