ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi クエリが「mysqli_report(MYSQLI_REPORT_STRICT)」を使用しても例外をスローしないのはなぜですか?

MySQLi クエリが「mysqli_report(MYSQLI_REPORT_STRICT)」を使用しても例外をスローしないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-31 07:24:11265ブラウズ

Why Don't MySQLi Queries Throw Exceptions Even with `mysqli_report(MYSQLI_REPORT_STRICT)`?

MySQLi クエリ エラーの例外

質問

mysqli_report(MYSQLI_REPORT_STRICT) を設定しているにもかかわらず、MySQLi のクエリ エラーは例外をスローしません。 mysqli_sql_Exception は接続エラーの場合にのみスローされます。クエリの失敗を検出するために mysqli_query() の戻り値を手動でチェックするのは普通ですか?

回答

はい、次の理由により手動チェックが必要になることがよくあります。

  1. mysqli_report(): 呼び出しmysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  2. Try-catch: 一般的な考えに反して、例外を過度に使用すべきではありません。ほとんどのエラーは、サイト全体のエラー ハンドラーによって一元的に処理される必要があります。

以前のコード:

$result = mysqli_query($DBlink, $SQL);
if($result === false) {
    throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink));
}

代わりに、try-catch は控えめにのみ使用してください。即時の対応が必要なエラー。

以上がMySQLi クエリが「mysqli_report(MYSQLI_REPORT_STRICT)」を使用しても例外をスローしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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