簡體   English   中英

如何從MySQL獲取最后一條錯誤消息?

[英]How to get last error message from 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的錯誤?

我認為您需要在“易出錯”的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: ");
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM