在 MySQL 文档中,有关于在事务提交后使用 mysql_affected_rows
的说明:
http://php.net/manual/en/function.mysql-affected-rows.php
Note: Transactions
If you are using transactions, you need to call mysql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the COMMIT.
但是,PDOStatement::rowCount
文档中没有这样的说明:
http://www.php.net/manual/en/pdostatement.rowcount.php
这是否意味着在使用 PDO
对象时,提交不会影响 INSERT、UPDATE 或 DELETE 查询后受影响的行数?
最佳答案
为执行的每个查询返回一个 PDOStatement。您将能够在您的代码中随时使用 PDOStatement->rowCount() (在事务期间或之后,回滚/提交无关紧要)。每个对象都负责维护自身。
mysql_affected_rows 之所以有那个事务注释是因为它只知道一个 mysql 连接资源。这意味着当您完成事务(提交/回滚)时,一个新的查询已被发送到数据库,从而改变正在处理的受影响行数的结果。
关于php - PDOStatement::rowCount 结果在 PDO::commit 之后使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10272134/