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

Susan Sarandon
リリース: 2024-10-31 18:05:30
オリジナル
1025 人が閲覧しました

How to retrieve multiple result sets from stored procedures in PHP/MySQLi?

PHP/MySQLi のストアド プロシージャを使用した複数の結果セットの取得

複数の結果セットを返すストアド プロシージャを処理する場合、後続のMySQLi では結果が難しい場合があります。

問題:

複数の結果を持つストアド プロシージャがあり、PHP/MySQLi を使用して 2 番目の結果セットを取得したいと考えています。 。ただし、mysqli_next_result() の使用は効果的に機能していないようです。

解決策:

ストアド プロシージャから複数の結果を正常に取得するには:

  1. ストアド プロシージャを準備して実行します:

    <code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
    mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
    mysqli_stmt_execute($stmt);</code>
    ログイン後にコピー
  2. 最初の結果セットをフェッチします:

    <code class="php">$result1 = mysqli_stmt_get_result($stmt);
    while ($row = $result1->fetch_assoc()) {
     // Process first result set
    }</code>
    ログイン後にコピー
  3. 次の結果セットに進みます:

    <code class="php">mysqli_stmt_next_result($stmt);</code>
    ログイン後にコピー
  4. 2 番目の結果セットをフェッチします:

    <code class="php">$result2 = mysqli_stmt_get_result($stmt);
    while ($row = $result2->fetch_assoc()) {
     // Process second result set
    }</code>
    ログイン後にコピー
  5. ステートメントを閉じます:

    <code class="php">mysqli_stmt_close($stmt);</code>
    ログイン後にコピー

追加の注意:

  • 次の結果セットに進む前に、必ず最初の結果セットを読んでください。
  • MySQLi でオブジェクト指向スタイルを使用すると、より魅力的な構文を提供できます。

次の手順に従うことで、PHP/MySQLi を使用してストアド プロシージャから複数の結果セットを正常に取得できます。

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

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