如果mysql_query不成功则显示错误

时间:2011-11-15 19:35:57

标签: php mysql mysql-error-1064

我创建了一个调试函数,通过电子邮件向我发送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 个答案:

答案 0 :(得分:1)

那个'或'构造可能导致问题,我会做类似的事情:

$result = mysql_query($sql);

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

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

答案 1 :(得分:0)

或类似的东西:

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