PHP收到警告和错误消息?

时间:2013-02-23 03:46:37

标签: php error-handling

我想在php $变量中收到警告和错误消息,以便将它们保存到我的数据库中。

例如,当出现任何类型的错误,警告或类似情况时:

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

我想让他们变量$ error_code

这是怎么做到的?

4 个答案:

答案 0 :(得分:8)

对于只记录它们的简单情况:

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

异常会产生更严重的副作用,因此您应该有exception handler来防止未捕获的异常导致白页死亡。

答案 1 :(得分:3)

查看set_error_handler()

  

设置用户函数(error_handler)以处理脚本中的错误。

     

此功能可用于定义您自己的错误处理方式   在运行时期间,例如在您需要执行的应用程序中   发生严重错误或需要时清理数据/文件   在某些条件下触发错误(使用trigger_error())。

答案 2 :(得分:2)

我正在使用error_get_last();,直到找到更好的解决方案

$lastError = error_get_last();
echo $lastError ? "Error: ".$lastError["message"]." on line ".$lastError["line"] : "";
// Save to db

答案 3 :(得分:0)

有一个名为$ php_errormsg的变量,它获取上一条错误消息。点击此处了解详情 - http://php.net/manual/en/reserved.variables.phperrormsg.php