如果mysql_query不成功,则显示错误


displaying errors if mysql_query not successful

我创建了一个调试函数,如果查询不成功,将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);
}

问题是,我正在接收电子邮件,即使查询执行良好(至少数据被插入,一切工作正常)

我做错了什么?

谢谢

这个'or'结构可能会导致问题,我会这样做:

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

这样你就可以做一个显式的检查,看看$result是一个布尔值false(查询无效),还是一个资源(查询有效)。关键是只有在确实存在问题时才调用$this->debug->dbErrors(),否则您的代码编写方式,每个查询都将通过电子邮件发送。

或者简单的:

mysql_query($sql) or die(dbErrors($sql));