我正在使用debug_backtrace()
和一些基本样式来记录我的网站错误。
if (@mysql_error($this->conn))
$error = 'mysql_error() response: ' . @mysql_error($this->conn);
else
$error = 'non mysql error\r\n';
有时它不起作用。我的日志文件充满了“非mysql错误”,但错误总是出现在具有数据库连接的函数中。就像,getAllNews()
函数失败,但它将其记录为非mysql错误。
如何正确记录我的网站和mysql的错误?
答案 0 :(得分:0)
我认为你需要在“错误”mysql函数之后立即记录错误。和AFAIK一样,所有可错误的函数都会在出错时返回FALSE
,因此您可以按以下方式检查;
<?php
public function errorLog($error) {
// concat error with mysql error
$error .= $this->conn
? mysql_error($this->conn)
: mysql_error();
// log error
error_log($error);
// keep last error
$this->_lastError = $error;
}
...
// remember suppressing error throws (with "@" sign)
$this->conn =@ mysql_connect(...);
if (false === $this->conn) {
$this->errorLog("Connection failed: ");
}
//or
$query =@ mysql_query(...);
if (false === $query) {
$this->errorLog("Query failed: ");
}
?>