当UPDATE查询多次运行时,PDO的rowCount()是否真的返回0?

时间:2012-08-12 13:17:26

标签: php mysql sql pdo sql-update

UPDATE table SET foo = 'bar' WHERE id = 1

如果您运行一次,PDOStatement::rowCount()会返回1,但如果再次运行(多次),则后续运行将返回0

我想知道这是否真的是预期的行为?是不是总是返回1,因为你基本上正在更新/影响同一行?

1 个答案:

答案 0 :(得分:3)

rowCount()通过UPDATE语句报告实际修改的行数。如果两次调用相同的UPDATE语句,则第二次不会有任何行需要修改(因为它们第一次更改)。因此受影响的行数实际上是第二次为0。

如果你在控制台中运行相同的东西,你会看到如下所示的东西,表明虽然一行符合你的标准,但它的列值已经是你试图改变它们的值,因此它们保持不变。 / p>

Rows matched: 1 Changed: 0 Warnings: 0