我想在php $变量中收到警告和错误消息,以便将它们保存到我的数据库中。
例如,当出现任何类型的错误,警告或类似情况时:
Parse error: syntax error, unexpected T_VARIABLE in /example.php(136) on line 9
Warning: [...]
我想让他们变量$ error_code
这是怎么做到的?
答案 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");
异常会产生更严重的副作用,因此您应该有exception handler来防止未捕获的异常导致白页死亡。
答案 1 :(得分:3)
设置用户函数(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