我最近在这里问了这个问题:Why doesn't this query produce a mysql_error() result?
建议的解决方案是改用mysql_affected_rows()...但是我只是尝试了一下,但是却相反。
如果我这样做。
if (mysql_affected_rows() < 1) {
$etext = 'Problem removing list main entry from database.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}
...或这个:
if (mysql_affected_rows() < 0) {
$etext = 'Problem removing list main entry from database.';
$log_error = $etext . ' MySQL Error: ' . mysql_error() . '. Query: ' . $query;
log_site_error($log_error);
throw new Exception($etext);
}
它总是出现在错误部分,这意味着它总是认为存在问题。我尝试了输出到日志文件的查询,并且工作正常。我还完全删除了那些错误检查部分,一切正常。...数据库行已按预期删除。
如何有效地对此进行错误检查?
编辑:奇怪的是,当我将数据库资源连接作为参数添加到mysql_error()调用中时,它起作用了。
最佳答案
我认为问题是您没有检查mysql_query的返回值。这是测试查询是否成功或失败的方法,而不调用mysql_error或mysql_affected_rows。