0

私はdebug_backtrace()いくつかの基本的なスタイルを使用して、Web サイトのエラーをログに記録しています。

if (@mysql_error($this->conn))
   $error = 'mysql_error() response: ' . @mysql_error($this->conn);
else
   $error = 'non mysql error\r\n';

うまくいかないこともあります。私のログファイルは「mysql以外のエラー」でいっぱいですが、エラーは常にデータベース接続を持つ関数に表示されます。同様に、getAllNews()関数は失敗しますが、mysql 以外のエラーとしてログに記録します。

Web サイトと mysql のエラーを正しくログに記録するにはどうすればよいですか?

4

1 に答える 1

0

「エラーが発生しやすい」mysql関数の直後にエラーをログに記録する必要があると思います。そして、知る限り、すべてのエラー可能な関数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: ");
}
?>
于 2013-01-30T18:00:07.440 に答える