ホームページ >バックエンド開発 >PHPチュートリアル >mysqli_multi_query で「mysqli_next_result(): 次の結果セットがありません」エラーが発生するのはなぜですか?

mysqli_multi_query で「mysqli_next_result(): 次の結果セットがありません」エラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-29 03:35:16931ブラウズ

Why Am I Getting a

厳格な標準: mysqli_multi_query での mysqli_next_result() エラー

多くの開発者は、mysqli_multi_query を使用するときに厳格な標準エラーに遭遇します。このエラー メッセージは「mysqli_next_result(): 次の結果セットがありません。mysqli_more_results()/mysqli::more_results() を呼び出して、この関数/メソッドを呼び出すかどうかを確認してください。」

ルート原因

エラーは次の場合に発生します。 mysqli_multi_query は、後続の結果セットがあるかどうかを確認せずに使用されます。デフォルトでは、mysqli_next_result は、結果セットが存在しない場合でも、次の結果セットに進みます。このエラーを回避するには、関数 mysqli_more_results を事前に呼び出して、追加の結果セットの存在を確認する必要があります。

解決策

問題を解決するには、次のコードを使用します。 :

if (mysqli_multi_query($db, $querystring)) {
    do {
        if ($result = mysqli_store_result($db)) {
            // ...
        }
    } while (mysqli_more_results($db) && mysqli_next_result($db));
}

これにより、mysqli_next_result のみが実行されることが保証されます後続の結果セットがある場合。

追加メモ

  • 一部の人が提案しているように、DO WHILE から WHILE に切り替える必要はありません。
  • クエリによって結果セットが生成されない場合、ループは発生しません。
  • さらに、コードを変更して、影響を受ける行の数をカウントしたり、エラー メッセージを表示したりできます。

以上がmysqli_multi_query で「mysqli_next_result(): 次の結果セットがありません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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