我创建了一个调试函数,通过电子邮件向我发送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);
}
问题是,即使查询执行正常,我也会收到电子邮件(至少插入了数据,一切正常)
我做错了什么?
由于
答案 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));