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

「厳格な標準: mysqli_multi_query での mysqli_next_result() エラー」を解決する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-24 05:41:17667ブラウズ

How to Resolve

厳格な標準: mysqli_multi_query による「mysqli_next_result() エラー」の解決

問題:

mysqli_multi_query を使用する場合、ユーザーは「厳格な基準」関連のエラーが発生するmysqli_next_result() に。このエラーは、処理する次の結果セットがないことを示します。

初期応答:

1 つの応答は、$querystring を変更して問題を修正しようとしましたが、対処できませんでした。厳格な標準エラーの根本原因。別の回答では、ループ構造を「DO WHILE」から「WHILE」に変更するようアドバイスされていますが、これは不要です。

実際の解決策:

エラーを解決するには、コードを変更します。次のように:

do {
    if ($result = mysqli_store_result($db)) {
        // Process result set
    }
} while (mysqli_more_results($db) && mysqli_next_result($db));

これにより、処理する結果セットがさらにある場合にのみループの条件が満たされるようになり、 error.

追加の考慮事項:

  • この例では、INSERT クエリが実行されますが、結果セットは生成されません。したがって、この場合、ループは実行されません。代わりに、mysqli_affected_rows() を使用して、影響を受ける行の数を取得することを検討してください。
  • 完全な解決策として、エラーが発生した場合に表示するエラー処理を組み込むことをお勧めします。

強化されたスニペット:

if (mysqli_multi_query($db, $querystring)) {
    do {
        if ($result = mysqli_store_result($db)) {
            // Process result set
            mysqli_free_result($result);
        } else if (mysqli_error($db)) {
            echo "Error: " . mysqli_error($db);
            break;
        }
    } while (mysqli_more_results($db) && mysqli_next_result($db));
}

結論:

エラー「厳密な標準: mysqli_next_result(): 次の結果セットはありません」は、mysqli_more_results を使用することで解決されます。 () 追加の結果セットの存在を確認します。拡張スニペットは、mysqli_multi_query 操作と mysqli_store_result 操作の肯定的な結果と否定的な結果の両方を処理します。

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

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