MySQLi 例外によるエラー処理の強化
エラー処理を簡素化しようとすると、MySQLi クエリ エラーを例外に変換する際に問題が発生します。 .
問題説明:
カスタム ラッパー クラス内の手続き型 MySQLi 関数と組み合わせて mysqli_report(MYSQLI_REPORT_STRICT) を使用しているにもかかわらず、クエリが失敗しても警告も例外も発生しないため、手動で戻り値をチェックする必要があります。 mysqli_query().
答え:
この問題を解決し、MySQLi に例外をスローさせるには、次のコマンドを使用します。行:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
説明:
mysqli_report() のデフォルトの動作は、警告とエラーの両方を報告することです。ただし、MYSQLI_REPORT_ERROR フラグを設定すると、MySQLi はエラーのみを報告するように指示され、例外をスローするという望ましい動作と一致します。
重要な注意事項:
毎回ラップすることは避けてください。 try-catch ブロックでクエリを実行します。これは、エラーの大部分を管理するためにサイト全体のエラー ハンドラーを利用することがベスト プラクティスと考えられているためです。特定の場所でそれらを扱うよりも。
以上がMySQLi クエリが例外をスローしないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。