".$sql; ">
我创建了一个调试函数,用于通过电子邮件向我发送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);
}
问题是,即使查询执行得很好,我也会收到电子邮件(至少数据已经插入,一切正常)
我做错什么了吗?
谢谢
发布于 2011-11-15 19:45:35
这个'or‘结构可能会引起问题,我会这样做:
$result = mysql_query($sql);
if (!$result) {
$this->debug->dbErrors($sql);
}
通过这种方式,您可以进行显式检查,以查看$result是布尔值false (查询无效)还是资源(查询有效)。重点是只有在确实有问题时才调用$this->debug->dbErrors()
,否则您的代码编写方式,每个查询都将通过电子邮件发送。
发布于 2011-11-15 19:47:34
或者一些简单的东西,比如:
mysql_query($sql) or die(dbErrors($sql));
https://stackoverflow.com/questions/8142087
复制