отображение ошибок, если mysql_query не удалось - PullRequest
0 голосов
/ 15 ноября 2011

Я создал функцию отладки, чтобы отправить мне сообщение об ошибке mysql и запрос, выполненный, если запрос не был успешным.

Я называю это так:

mysql_query($sql) or $this->debug->dbErrors($sql);

И функция:

function dbErrors($sql = ''){
    if($this->doDebug)
        echo mysql_error()."<br/>".$sql;
    else
        @mail(hidden_email,$_SERVER['HTTP_HOST'].' Mysql Error','A error occured in '.$_SERVER['HTTP_HOST'].':<br/>'.mysql_error().'<br/>'.$sql);
}

Проблема в том, что я получаю электронные письма, даже когда запрос выполняется нормально (по крайней мере, данные вставлены и все работает нормально)

Что я делаю не так?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Эта 'или' конструкция может вызывать проблемы, я бы сделал что-то вроде:

$result = mysql_query($sql);

if (!$result) {
     $this->debug->dbErrors($sql);
}

Таким образом, вы выполняете явную проверку, чтобы увидеть, является ли $ result логическим значением false (запрос недействителен) или ресурсом (запрос действителен). Смысл в том, чтобы вызывать $this->debug->dbErrors() только в том случае, если проблема действительно существует, в противном случае при написании вашего кода каждый запрос будет отправлен по электронной почте.

0 голосов
/ 15 ноября 2011

или что-то простое, например:

mysql_query($sql) or die(dbErrors($sql));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...