UPDATE table SET foo = 'bar' WHERE id = 1
如果运行一次,PDOStatement::rowCount()
返回 1
,但如果再次运行(多次),则后续运行将返回 0
。
我想知道这是否真的是预期的行为?不是应该总是返回1
,因为您基本上正在更新/影响同一行吗?
rowCount()
报告UPDATE
语句实际修改的行数。如果两次调用相同的 UPDATE
语句,则第二次将没有任何行需要修改(因为它们第一次更改)。 因此,第二次受影响的行数实际上是 0。
如果您在控制台中运行相同的操作,您将看到如下所示的内容,表明尽管行符合您的条件,但其列值已经是您尝试将其更改为的值,因此它们保持不变。
Rows matched: 1 Changed: 0 Warnings: 0