サイト内に適切なエラー処理システムを導入しようと、数日間神経をすり減らす日々を過ごしてきました。
私のエラー処理システムは、mysqli エラーなどの予期しないエラーのみに焦点を当てています
私のサイトでは多数の mysqli クエリが実行されているため、エラーが発生する可能性があります。
私のシステムには 3 つの部分がありますが、どれもベスト プラクティスと効率のどちらに位置するかわかりません。
ステップ 1 :エラーをキャッチする
$query = "
SELECT * FROM `users_account_activations` WHERE `user_ip` =?
";
$statement = $databaseHandler->mysqli->prepare($query);
$statement->bind_param('s', $userIp);
$statement->execute();
$statement->store_result();
//record error, if any
$databaseHandler->mysqli->error ? error = true : error = false;
これは、準備されたステートメントのどこかでエラーの存在をキャッチする良い方法ですか?
クエリの最後にエラーを探しても、準備段階でエラーをキャッチできませんか? または、準備ステージが失敗すると、他のすべてが失敗します (落下するドミノなど)。
ステップ 2 :エラーの記録
error_log("Could not process query...", 3, 'log/default.log');
- これはエラーを記録する適切な方法ですか? ファイル ストリームを開くシステムとは異なりますか?
ステップ 3 :計算後の処理
エラーが発生したので、先に進む方法を決定する必要があります。私のシステムでは、スクリプトを終了し、「opps!何か問題が発生しました」という標準エラー ページに移動する必要があります。
header('location: errorpage.php'); exit();
- ヘッダーを変更することはこれを行う良い方法ですか? いつ使用できるかに関するヘッダーの制限を認識しています。
エラーを処理するためのより良い方法はありますか?このシステムは、予期しないエラーを対象としています。予想されるエラーは処理され、別の方法でユーザーに表示されます。