无条件的delete查询在mysql4.1.2 版之前mysql_affected_rows为0

$res = mysql_query("delete from tblName");echo $rows = mysql_affected_rows();

变量$rows在mysql4.1.2 之前,将为0;

可以简单做如下处理:

function hack($sql){

    if (preg_match('/^/s*DELETE/s+FROM/s+(/S+)/s*$/i', $query)) {

        $query = preg_replace('/^/s*DELETE/s+FROM/s+(/S+)/s*$/',

                                         'DELETE FROM /1 WHERE 1=1', $query);

    }

     return $query;

}
加上一个where 1=1(真条件),将可以得到正常的受影响行的数目

你可能感兴趣的:(sql,mysql,function,delete,query)