`
onedada
  • 浏览: 103325 次
  • 性别: 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 — ...

    关于Mysql数据库导致CPU很高的问题解决.docx

    1. mysql_affected_rows(): 取得前一次 MySQL 操作所影响的记录行数。 2. mysql_change_user(): 改变活动连接中登录的用户。 3. mysql_client_encoding(): 返回字符集的名称。 4. mysql_close(): 关闭 MySQL 连接。 ...

    MySQL数据库考试试题及答案-34页

    SUM 函数用于计算数据的总和,MAX 函数用于取得最大值,COUNT 函数用于计算数据的行数,AVG 函数用于计算数据的平均值。 2.游标声明 在 MySQL 中,DECLARE CURSOR 语句用于声明游标。游标用于在 SELECT 语句中...

    详尽的PHP数据库操作指南及ACCESS示例

    本文详细介绍了使用 PHP 进行...还介绍了获取所查询的记录行数的功能及其与mysql_affected_rows()的不同之处,并讲解了如何取得数据库中的表和列详情,特别提供了一个使用 PHP 的 COM 对象连接 ACCESS 的实例展示。

    php mysql数据库操作类

    affected_rows 方法用于获取上一次执行的INSERT、UPDATE或DELETE查询影响到的行数。 8. 结果集中行的数目: num_rows 方法用于获取SELECT语句返回的结果集中行的数目。 9. 错误信息处理: get_errno 方法用于获取...

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

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

    Delphi获取数据库前几行记录集..rar

    在Delphi编程环境中,获取数据库的前几行记录集是一项常见的任务,这通常涉及到数据库连接、查询执行和数据处理。Delphi提供了多种方法来实现这一功能,包括使用ADO(ActiveX Data Objects)、DBExpress、FireDAC等...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    C数据库课程设计mysqlCUMCM-2023C开发笔记

    - 执行SQL语句:通过mysql_query()执行SQL命令,mysql_store_result()存储查询结果,mysql_num_rows()获取结果集行数。 - 结果集处理:使用mysql_fetch_row()获取结果集中的一行数据,并将其转换为C语言的数据类型...

    最新PHP程序员测试体

    15. **mysql_affected_rows**:该函数返回最后一条`INSERT`, `UPDATE`, `DELETE`语句影响的行数,对`SELECT`操作无影响。 16. **mysql_data_seek**:该函数中的资料记录位置是从0开始计数的。 17. **取得记录总数*...

    php入门之连接mysql数据库的一个类

    - `affected_rows`:返回上一个`INSERT`、`UPDATE`或`DELETE`查询影响的行数。 - `result`:从结果集中取得一列数据。 - `num_rows`:返回结果集中行的数量。 - `num_fields`:返回结果集中的字段数量。 - `...

    php获取数据库结果集方法(推荐)

    - mysql_affected_rows():返回由前一个查询语句所影响的记录行数。 - mysql_close():关闭与MySQL服务器的连接。 上述知识点覆盖了使用PHP获取数据库结果集的基本操作,当然还有许多其他的函数可以用于不同的...

    2021-2022计算机二级等级考试试题及答案No.16012.docx

    8. PHP与MySQL:在PHP中,mysql_fetch_array()、mysql_fetch_row()和mysql_fetch_assoc()分别用于读取MySQL查询结果集中的记录,而mysql_affected_rows()返回受影响的行数,而不是用于读取记录。 9. Session对象...

    JDBC实现三个板块的增删查改

    调用`executeUpdate()`方法执行插入、更新或删除操作,返回受影响的行数。 ```java int rowsAffected = pstmt.executeUpdate(); ``` ### 6. 查询操作 对于查询操作,可以使用`executeQuery()`方法获取`ResultSet`...

    2016PHP面试题

    - **答案**:`mysql_affected_rows()`用于获取上一条SQL语句影响的行数,对SELECT操作没有影响。 #### 15. 取得搜索语句的结果集中的记录总数的函数是: - **答案**:`mysql_num_rows($result)`用于获取查询结果...

    教你写出高效的sql语句

    WHERE子句则用于在聚合前过滤记录。了解两者的区别有助于编写更精确的查询语句。 #### 提升复杂查询的性能 12. **优化复杂查询**:在执行复杂的多表连接查询时,注意检查是否存在子查询,因为子查询可能成为性能...

    tutorial_JDBC:初学者使用MySql的Java JDBC教程

    后者返回影响行数。 5. **ResultSet**:`ResultSet`对象存储查询结果,可按行迭代读取数据。它有移动指针,可以通过`next()`方法获取下一行。 6. **事务管理**:JDBC支持事务,通过`Connection.setAutoCommit...

    2021-2022计算机二级等级考试试题及答案No.19618.docx

    10. PHP中,mysql_affected_rows()函数用于获取最后一条SQL语句影响的行数,而不是读取结果集的记录,所以D选项是不能用于读取结果集的。 11. 在Excel2003中,Ctrl+F是用于打开【查找和替换】对话框的快捷键。 12....

    2021-2022计算机二级等级考试试题及答案No.9831.docx

    9. SQL(Structured Query Language)是关系数据库的通用查询语言,不仅限于MySQL,并且可以进行非交互式操作。 10. 编译Java Application源程序文件会产生.class字节码文件,这是Java虚拟机执行的二进制格式。 11...

    PHP分页原理[定义].pdf

    接着,`parse_url()`函数用于解析URL,将URL拆分成不同的部分,如协议、主机名、路径、查询字符串等,便于处理和操作。例如: ```php $url = 'http://username:password@hostname/path?arg=value#anchor'; $ua = ...

Global site tag (gtag.js) - Google Analytics