在以前的票我asked about logging PHP errors in MySQL這給了我:PHP error_log中錯誤的MySQL
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
// mysql connect etc here...
$sql = "INSERT INTO `error_log` SET
`number` = ".mysql_real_escape_string($errno).",
`string` = ".mysql_real_escape_string($errstr).",
`file` = ".mysql_real_escape_string($errfile).",
`line` = ".mysql_real_escape_string($errline);
mysql_query($sql);
// Don't execute PHP internal error handler
return true;
}
// set to the user defined error handler
$new_error_handler = set_error_handler("myErrorHandler");
我可以做這個工作,但只有當它是triggerred這樣的:
trigger_error("message here");
不過,我也想要錯誤處理程序被稱爲所有錯誤,如語法錯誤,如:
echo "foo;
但是,這些錯誤是剛剛輸出到屏幕上,我做錯了什麼?
我可以問你爲什麼要記錄這樣的錯誤嗎? – Chris 2010-08-19 19:25:21
你不能用php錯誤處理程序處理不可捕捉的致命錯誤(並且語法錯誤是一個不可捕捉的致命錯誤)。這是不能做到的。 – ircmaxell 2010-08-19 19:30:39
我想在系統中捕獲任何錯誤,而無需做任何其他更改。目前語法錯誤將意味着根本沒有任何報告 – robjmills 2010-08-19 19:32:22