`
onedada
  • 浏览: 100675 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

取得前一次MySQL操作所影响的记录行数

阅读更多

本文转载自:   http://blog.csdn.net/militala/article/details/5996510

 

 

mysql_affected_rows() 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数.FOUND_ROWS() : select ROW_COUNT() : update delete insert.

 

 

 

FOUND_ROWS() : select
ROW_COUNT()  : update delete insert.

 

MYSQL的函数中,SELECT是另外一个单独的函数 FOUND_ROWS() , UPDATE等是 ROW_COUNT()

 

如下案例:

 

  1. mysql> INSERT INTO t VALUES(1),(2),(3);  
  2. Query OK, 3 rows affected (0.00 sec)  
  3. Records: 3  Duplicates: 0  Warnings: 0  
  4.  
  5. mysql> SELECT ROW_COUNT();  
  6. +-------------+  
  7. | ROW_COUNT() |  
  8. +-------------+  
  9. |           3 |  
  10. +-------------+  
  11. 1 row in set (0.00 sec)  
  12.  

 

mysql_affected_rows
(PHP 3, PHP 4 , PHP 5)

 

mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数说明
int mysql_affected_rows ( [resource link_identifier])

 


mysql_affected_rows() 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。如果连接句柄没有指定, 则默认使用最近一次由 mysql_connect() 函数打开的连接句柄。

 

注: 如果你使用事务处理(transactions),你需要在 INSERT,UPDATE 或 DELETE 查询后调用 mysql_affected_rows() 函数,而不是在 commit 命令之后。

 

如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询, 在表中所有的记录都会被删除,但该函数返回值为 0。

 

注: 当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。 这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数。 只有真正被修改的记录数才会被返回。

 

mysql_affected_rows() 函数不适用于 SELECT 语句;只适用于能够修改记录的语句中。请使用 mysql_num_rows() 函数来获得 SELECT 所返回的记录行数。

 

如果最近一次查询失败的话,函数返回 -1。 例子 1. Delete 操作

 

 

 

  1. <?php  
  2.     /* 连接数据库 */ 
  3.     mysql_pconnect("localhost""mysql_user""mysql_password"or 
  4.          die ("Could not connect" . mysql_error());  
  5.     mysql_select_db("mydb");  
  6.  
  7.     /* 这会返回有效的被删除记录数。 */ 
  8.     mysql_query("DELETE FROM mytable WHERE id < 10");  
  9.     printf ("Records deleted: %d/n", mysql_affected_rows());  
  10.  
  11.     /* 没有任何条件(where)的删除语句,返回 0 */ 
  12.     mysql_query("DELETE FROM mytable");  
  13.     printf ("Records deleted: %d/n", mysql_affected_rows());  
  14. ?>    

 

以上的例子会得出下面的运行结果:

 

Records deleted: 10Records deleted: 0
 
 

 


例子 2. Update 操作

 

 

 

  1. <?php  
  2.     /* 连接数据库 */ 
  3.     mysql_pconnect("localhost""mysql_user""mysql_password"or 
  4.          die ("Could not connect" . mysql_error());  
  5.     mysql_select_db("mydb");  
  6.  
  7.     /* Update 记录 */ 
  8.     mysql_query("UPDATE mytable SET used=1 WHERE id < 10");  
  9.     printf ("Updated records: %d/n", mysql_affected_rows());  
  10.     mysql_query("COMMIT");  
  11. ?>    

 

以上的例子会得出下面的运行结果:

 

Updated Records: 10
 
 

 


参见 mysql_num_rows() 和 mysql_info()。

 


mysql_affected_rows() 返回的是对行操作的个数

 

$query=mysql_query("select * from love_mp3_table ");

 

mysql_affected_rows();//其实对这个也有效,返回44,在这和mysql_num_rows($query)效果一样

 

$query=mysql_query("INSERT INTO table(id,title,hrefurl) VALUE('','节节胜利','http://')");

 

mysql_affected_rows();//返回1

 

$query=mysql_query("DELETE FROM tabel WHERE id=45");

 

mysql_affected_rows();//返回1

 

$query=mysql_query("UPDATE table SET title='我是' WHERE id=44");

mysql_affected_rows();//返回1

 

 

 

 

 

分享到:
评论

相关推荐

    php操作mysql详解

    mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数 mysql_client_encoding — 返回字符集的名称 mysql_close — 关闭 MySQL 连接 mysql_connect — 打开一个到 MySQL 服务器的连接 mysql_create_db — ...

    php适用于各种数据库链接类.zip

    介绍一个适用于各种数据库链接类,返回根据从结果集取得的行生成的数组,返回根据所取得的行生成的对象,取得前一次 MySQL 操作所影响的记录行数,获得客户端真实的IP地址。

    [php]mysql数据库操作——DB类

    【作 用】: mysql数据库操作类 【作 者】: Riyan 【版 本】: version 2.0 【修改日期】: 2010/02/11 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※※※※※※※※ **/ class ...

    linux学习记录

    wc 取得文件中的行数,字数,字符数 注:showoff文件一个文件名 find 可以从目录或子目录中收索所选文件 Locate 收索数据库中的文件 Grep 收索一个没有打开的文件中的字符(查找给定字符串所以在的位置或行) vi ...

    程序员的SQL金典6-8

     2.2.8 受限操作的变通解决方案 第3章 数据的增、删、改  3.1 数据的插入  3.1.1 简单的INSERT语句  3.1.2 简化的INSERT语句  3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对...

    程序员的SQL金典7-8

     2.2.8 受限操作的变通解决方案 第3章 数据的增、删、改  3.1 数据的插入  3.1.1 简单的INSERT语句  3.1.2 简化的INSERT语句  3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对...

    程序员的SQL金典3-8

     2.2.8 受限操作的变通解决方案 第3章 数据的增、删、改  3.1 数据的插入  3.1.1 简单的INSERT语句  3.1.2 简化的INSERT语句  3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对...

    程序员的SQL金典4-8

     2.2.8 受限操作的变通解决方案 第3章 数据的增、删、改  3.1 数据的插入  3.1.1 简单的INSERT语句  3.1.2 简化的INSERT语句  3.1.3 非空约束对数据插入的影响  3.1.4 主键对数据插入的影响  3.1.5 外键对...

    程序员的SQL金典.rar

    第3部分为案例篇,对前两部分的知识进行了综合运用。  本书适合程序开发人员及数据库工程师参考学习,也可作为高等院校相关专业师生的参考书。 目录 第1章 数据库入门  1.1 数据库概述  1.1.1 数据库与数据库管理...

    易语言程序免安装版下载

     静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

Global site tag (gtag.js) - Google Analytics