7

警告とエラーメッセージをphp$variablesに入れたいので、それらをデータベースに保存します。

たとえば、何らかのエラー、警告などがある場合:

Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]

それらを変数$error_codeに入れたい

これはどのように行われますか?

4

4 に答える 4

9

それらをログに記録するだけの単純なケースの場合:

set_error_handler(function($errno, $errstr, $errfile, $errline) use ($db) {
    // log in database using $db->query()
});

それらをデータベースに記録するだけでなく(しばらくするとそれらを見なくなる可能性があります)、それらの警告、通知などで例外を生成させることもできます。

function exception_error_handler($errno, $errstr, $errfile, $errline)
{
    if (error_reporting()) { // skip errors that were muffled
        throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
    }
}

set_error_handler("exception_error_handler");

ソース:ErrorException

例外にはより深刻な副作用があるため、例外ハンドラーを配置して、キャッチされない例外がホワイトページの死を引き起こすのを防ぐ必要があります。

于 2013-02-23T04:04:35.803 に答える
3

調べるset_error_handler()

スクリプト内のエラーを処理するユーザー関数 (error_handler) を設定します。

この関数は、実行時にエラーを処理する独自の方法を定義するために使用できます。たとえば、重大なエラーが発生したときにデータ/ファイルのクリーンアップを行う必要があるアプリケーションや、特定の条件下でエラーをトリガーする必要がある場合 (トリガー_エラー())。

于 2013-02-23T03:49:18.837 に答える
2

error_get_last();より良い解決策が見つかるまで使用します

$lastError = error_get_last();
echo $lastError ? "Error: ".$lastError["message"]." on line ".$lastError["line"] : "";
// Save to db
于 2013-02-23T04:04:51.463 に答える
0

以前のエラー メッセージを取得する $php_errormsg という変数があります。詳細については、こちらをご覧ください - http://php.net/manual/en/reserved.variables.phperrormsg.php

于 2013-02-23T03:50:27.853 に答える