PHP で MySQL クエリを使用する場合、潜在的なエラーを処理するために mysqli または die 構造に頼るのが一般的です。しかし、常にスクリプトの実行を終了する必要があるのでしょうか?それとも代替手段はありますか?
その名前に反して、die() 関数は理想的なものではありませんこのコンテキストでのエラー処理のアプローチ。その理由は次のとおりです。
die() を使用する代わりに、 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)。これにより、次のような追加のエラー処理コードを使用せずに MySQLi コマンドを作成できます。
$result = mysqli_query($link, $sql);
エラーが発生した場合、例外がスローされます。この例外を適切にキャッチして処理し、カスタマイズされたエラー応答を提供したり、ユーザーを適切にリダイレクトしたりできます。例:
try { $result = mysqli_query($link, $sql); } catch (mysqli_sql_exception $e) { // Handle the error here log_error($e->getMessage()); redirect_to_error_page(); }
必要に応じて、監査や詳細な分析のために別のテーブルにエラーをログすることもできます。これを行うには、このタスクを処理するカスタム関数を作成できます。
function log_error($query, $error) { // Insert error log into a table $sql_insert_error = "INSERT INTO error_log (query, error) VALUES ('{$query}', '{$error}')"; mysqli_query($link, $sql_insert_error); }
mysqli または die の使用は便利に思えるかもしれませんが、欠点があるためお勧めできません。代わりに、例外をスローし、エラーを適切に処理するように MySQLi を構成します。そうすることで、エラーが発生した場合でも、より優れたユーザー エクスペリエンスを提供する回復力のあるアプリケーションが保証されます。
以上がmysqli or die: 即時終了ではなく例外を受け入れる必要があるか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。