php更新mysql后获取影响的行数发生异常解决方法

yipeiwu_com7年前Mysql基础
从manual上知道了mysql_affected_rows函数当UPDATE前后的数据一样时会返回异常值,

下面有个方便的解决办法,从官方munual上看到 bdobrica at gmail dot com 留言的:
As a solution to the problem pointed in the post reffering to mysql_affected_rows() returning 0 when you are making an update query and the fields are not modified although the query is valid, i'm posting the following function. It is very simple and based on a previous post.
复制代码 代码如下:

function mysql_modified_rows () {
$info_str = mysql_info();
$a_rows = mysql_affected_rows();
ereg("Rows matched: ([0-9]*)", $info_str, $r_matched);
return ($a_rows < 1)?($r_matched[1]?$r_matched[1]:0):$a_rows;
}

PS:因为这个小问题折腾了半天,感觉php真是太不清晰了

相关文章

IIS下配置Php+Mysql+zend的图文教程

IIS下配置Php+Mysql+zend的图文教程

  为了迎接dvphp公测,特发此教程,希望对一些不会的朋友有所帮助,希望会的朋友多多指教!   下面的教程都是在windows 2000下实现的,其他系统请自己参...

fetchAll()与mysql_fetch_array()的区别详解

同一个查询语句:fetchAll():复制代码 代码如下:array(1) {          ...

MySQL修改密码方法总结

方法一  使用phpmyadmin,这是最简单的了,修改mysql库的user表,  不过别忘了使用PASSWORD函数。  方法二  使用mys...

安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法

访问phpmyadmin时总是出现 “无法载入 mysql 扩展,请检查 PHP 配置”。查看原因是“php_mysql.dll”无法载...

mysql 的 like 问题,超强毕杀记!!!

方法一: 解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"...