ホームページ > バックエンド開発 > PHPチュートリアル > mysqli_multi_query() で「厳格な標準: mysqli_next_result() エラー」を修正する方法は?

mysqli_multi_query() で「厳格な標準: mysqli_next_result() エラー」を修正する方法は?

DDD
リリース: 2024-11-29 05:39:17
オリジナル
1031 人が閲覧しました

How to Fix

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

問題:

の使用mysqli_multi_query() は、mysqli_next_result() に関連する「厳密な標準」エラーをトリガーします。

解決策:

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

do{} while(mysqli_more_results($db) && mysqli_next_result($db));
ログイン後にコピー

説明:

mysqli_next_result() を使用する必要があるかどうかを確認するために mysqli_more_results() を呼び出す必要があるため、厳密な標準エラーが発生します。提供されたコード スニペットは、別の結果セットがある場合にのみ mysqli_next_result() が呼び出されるようにします。

考慮事項:

  • 提供された例では、INSERT クエリのみが使用されます。実行されていますが、結果セットは返されません。したがって、ループは実行されず、エラーは発生しません。
  • クエリに SELECT ステートメントまたは結果セットを返すその他の操作が含まれている場合、提供されるソリューションによりエラー メッセージが表示されなくなります。
  • 変更されたコード スニペットでは do-while ループが使用されています。これはテスト後のものであり、条件付きブレークやコード内での終了は必要ありません。 loop.

機能強化:

より堅牢なアプローチについては、次のコード スニペットを検討してください。

if(mysqli_multi_query($db,$querystring)){
    do{
        $cumulative_rows+=mysqli_affected_rows($db);
    } while(mysqli_more_results($db) && mysqli_next_result($db));
}
if($error_mess=mysqli_error($db)){echo "Error: $error_mess";}
echo "Cumulative Affected Rows: $cumulative_rows";
ログイン後にコピー

このコード スニペット:

  • INSERT、UPDATE、または影響を受ける行をカウントします。 DELETE クエリ。
  • 累積的に影響を受けた行を表示します。
  • エラーをチェックし、有益なエラー メッセージを提供します。

追加メモ:

mysqli_multi_query() に慣れていないユーザーのために、汎用性の高いコード スニペットを次に示します。結果セットの有無にかかわらずクエリを処理します:

while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query=mysqli_multi_query($mysqli,implode(';',$queries)))){
    echo "<br><br>",key($queries),": ",current($queries);  // display array pointer key:value
    if($result=mysqli_store_result($mysqli)){
        while($rows=mysqli_fetch_assoc($result)){
            echo "<br>Col = {$rows["Col"]}";
        }
        mysqli_free_result($result);
    }
    echo "<br>Rows = ",mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
}
ログイン後にコピー

このコード スニペット:

  • SELECT、INSERT、UPDATE、DELETE を含むすべての種類のクエリで機能します。
  • クエリ自体、影響を受ける行または列の値、潜在的な可能性を含む詳細な出力を提供します。エラー。
  • 特定のニーズやデータベース構造に合わせて簡単に変更できます。

以上がmysqli_multi_query() で「厳格な標準: mysqli_next_result() エラー」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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