PDOStatement::rowCount result 在 PDO::commit 之后使用时


PDOStatement::rowCount result when used after PDO::commit?

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

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

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

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

为每个

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

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