ホームページ >データベース >mysql チュートリアル >PHP エラーをログ ファイルではなくデータベースに保存できますか?
PHP エラーはエラー ログ ファイルではなくデータベースに書き込むことができますか?
PHP エラーは通常、標準の error_log ファイルに記録されます。しかし、追跡と分析を容易にするために、代わりにデータベースに保存することが望ましい場合があります。これはカスタム エラー ハンドラーを作成せずに直接可能ではありませんが、単一のグローバルな変更で実現できます。
カスタム エラー ハンドラーの実装
制御の鍵エラーを処理する方法は、カスタム エラー ハンドラーを作成することです。これは、コールバック関数を引数として受け取る set_error_handler() 関数を使用して実行できます。コールバック関数には次のシグネチャが必要です:
function error_handler($errno, $errstr, $errfile, $errline) {}
コールバック関数内で、データベースにログを記録するかどうかなど、各エラーの処理方法を決定できます。
MySQL へのエラーログの例
次のコードは、PHP エラーをログに記録するカスタム エラー ハンドラーの例を示しています。 MySQL データベース:
function myErrorHandler($errno, $errstr, $errfile, $errline) { // Establish connection to MySQL database $conn = mysqli_connect("hostname", "username", "password", "database"); // Prepare SQL query to log error $query = "INSERT INTO error_log (number, string, file, line) VALUES (?, ?, ?, ?)"; $stmt = mysqli_prepare($conn, $query); // Bind parameters to SQL query mysqli_stmt_bind_param($stmt, "isss", $errno, $errstr, $errfile, $errline); // Execute SQL query to log error mysqli_stmt_execute($stmt); // Close database connection mysqli_close($conn); // Don't execute PHP internal error handler return true; } // Set user-defined error handler $old_error_handler = set_error_handler("myErrorHandler");
ユーザー定義のエラー ハンドラーを設定すると、MySQL データベースへのログ記録など、すべての PHP エラーがカスタム エラー処理ロジックを通じてルーティングされます。
以上がPHP エラーをログ ファイルではなくデータベースに保存できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。