如何从MySQL获取最后一条错误消息?

时间:2013-01-30 16:34:18

标签: php mysql

我正在使用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的错误?

1 个答案:

答案 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: ");
}
?>