php更新mysql后获取改变行数的方法
本文实例讲述了php更新mysql后获取改变行数的方法。分享给大家供大家参考。具体分析如下:
一个php更新mysql后获取改变的行数,在php中提供mysql函数来获取最后执行查询所影响的记录数:mysql_affected_rows(),返回最近一次与连接句柄关联的INSERT,UPDATE或DELETE查询所影响的记录行数.FOUND_ROWS():selectROW_COUNT():updatedeleteinsert.
下面就是文章的主要内容描述,代码如下:
found_rows():select row_count():updatedeleteinsert
注:需要配合相应的操作一起使用,否则返回的值只是1和-1(都是不正确的值)
php示例代码如下:
dropdatabaseifexists`mytest`; createdatabase`mytest`; use`mytest`; droptableifexists`MyTestTable`; createtable`MyTestTable`(`ID`int,`Name`varchar(10)); insertinto`MyTestTable`(`ID`,`Name`) select'1','role1'unionall select'2','role2'unionall select'3','role3'; selectrow_count();--输出3(返回新添加的记录数),[注:如果使用insertinto...values只返回1] select*from`MyTestTable`;selectfound_rows();--输出3(返回选择的行数) update`MyTestTable`set`Name`='people';selectrow_count();--输出3(返回修改的行数) deletefrom`MyTestTable`;selectrow_count();--输出3(返回删除的行数)
php更新mysql后获取影响的行数发生异常解决,代码如下:
functionmysql_modified_rows(){ $info_str=mysql_info(); $a_rows=mysql_affected_rows(); ereg("Rowsmatched:([0-9]*)",$info_str,$r_matched); return($a_rows<1)?($r_matched[1]?$r_matched[1]:0):$a_rows; }
希望本文所述对大家的php程序设计有所帮助。