我最近在这里问了这个问题: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。

08-06 23:23