得前一次MySQL操作所影响的记录行数
2015-12-28 17:27
686 查看
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()
如下案例:
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 操作
以上的例子会得出下面的运行结果:
Records deleted: 10Records deleted: 0
例子 2. Update 操作
以上的例子会得出下面的运行结果:
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
FOUND_ROWS() : select
ROW_COUNT() : update delete insert.
MYSQL的函数中,SELECT是另外一个单独的函数 FOUND_ROWS() , UPDATE等是 ROW_COUNT()
如下案例:
mysql> INSERT INTO t VALUES(1),(2),(3); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT ROW_COUNT(); +-------------+ | ROW_COUNT() | +-------------+ | 3 | +-------------+ 1 row in set (0.00 sec)
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 操作
<?php /* 连接数据库 */ mysql_pconnect("localhost", "mysql_user", "mysql_password") or die ("Could not connect" . mysql_error()); mysql_select_db("mydb"); /* 这会返回有效的被删除记录数。 */ mysql_query("DELETE FROM mytable WHERE id < 10"); printf ("Records deleted: %d/n", mysql_affected_rows()); /* 没有任何条件(where)的删除语句,返回 0 */ mysql_query("DELETE FROM mytable"); printf ("Records deleted: %d/n", mysql_affected_rows()); ?>
以上的例子会得出下面的运行结果:
Records deleted: 10Records deleted: 0
例子 2. Update 操作
<?php /* 连接数据库 */ mysql_pconnect("localhost", "mysql_user", "mysql_password") or die ("Could not connect" . mysql_error()); mysql_select_db("mydb"); /* Update 记录 */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Updated records: %d/n", mysql_affected_rows()); mysql_query("COMMIT"); ?>
以上的例子会得出下面的运行结果:
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
相关文章推荐
- 关于MySQL分页几个好的博文
- kettle:mongdb与mysql互传数据
- 错误 175: 具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序未在计算
- mysql alter
- Mysql 查询缓存
- mysql将时间戳直接转换成日期时间
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
- 【mysql】添加对emoji的支持
- Mysql 5.7 相关问题记录
- 解决MYSQL数据库 Table ‘xxx’ is marked as crashed and should be repaired 145错误
- mysql触发器
- MySQL之配置参数优化
- mysql新增授权给特定IP访问的用户
- mac上mysql root密码忘记或权限错误的解决办法
- Windows 7安装mysql-5.6.15-winx64解压版
- 常用Mysql命令
- MySQL字符集设置及字符转换
- Mysql 命令
- MySQL explain执行计划解读
- MySql中LongText字段对应Hibernate映射文件的设置(转)