死ななければならないのか
それどころか、決してすべきではありませんor die()
。
PHP は遺伝の悪い言語です。非常に悪い遺伝。そしてor die()
、エラーメッセージは最悪の基本の1つです:
- die はエラー メッセージを表示し、潜在的な攻撃者にシステム内部の一部を明らかにします。
- 無実のユーザーを奇妙なメッセージで混乱させ、操作するインターフェイスを残さないため、ドロップアウトする可能性があります。
- 途中でスクリプトを強制終了するため、破損したデザイン (またはデザインがまったく表示されない) が表示される可能性があります (つまり、ユーザーが要求したページの不完全なレンダリング)。
- スクリプトを取り返しのつかないほど殺します。スローされた例外はキャッチして適切に処理できますが、
die()
エラーが発生した場所のヒントはありません。また、比較的大きなアプリケーションでは、見つけるのが非常に面倒です。
そのため、一時的なデバッグであっても、die()
MySQL エラーには使用しないでください。もっと良い方法があります。
エラーを手動でチェックする代わりに、次の行を接続コードに追加して、エラー時に例外をスローするように mysqli を構成するだけです。
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
その後、すべての mysqli コマンドを、or die
他に何もせずにそのまま記述します。
$result = mysqli_query($link, $sql);
このコードは、エラーが発生した場合に例外をスローするため、余分なコードを 1 行も書かなくても、すべての問題が常に通知されます。
コードをよりクリーンにしながら、エラー レポートを本番環境に対応させ、統一し、全体的に適切にする方法についての詳細な説明は、PHP エラー レポートに関する私の記事を参照してください。