8

在 MySQL 文档中,有一条关于mysql_affected_rows在事务提交后使用的说明:http: //php.net/manual/en/function.mysql-affected-rows.php

注意:事务
如果您使用事务,则需要在 INSERT、UPDATE 或 DELETE 查询之后调用mysql_affected_rows() ,而不是在 COMMIT 之后。

PDOStatement::rowCount但是,文档 上没有这样的注释: http ://www.php.net/manual/en/pdostatement.rowcount.php

这是否意味着在使用对象时,在 INSERT、UPDATE 或 DELETE 查询之后提交不会影响受影响的行数PDO

4

1 回答 1

13

每个执行的查询都会返回一个 PDOStatement。您可以随时在代码中使用 PDOStatement->rowCount()(在事务期间或之后,回滚/提交无关紧要)。每个对象都负责维护自己。

mysql_affected_rows 有该事务注释的原因是因为它只知道单个 mysql 连接资源。这意味着当您完成事务(提交/回滚)时,新查询已发送到数据库,从而改变正在处理受影响行数的结果。

于 2012-04-26T16:08:08.213 回答