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

71 篇文章 0 订阅
35 篇文章 1 订阅




mysql_affected_rows
(PHP 3, PHP 4 )


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: 10
Records 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()。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值