UPDATE table SET foo = 'bar' WHERE id = 1
如果您运行一次,PDOStatement::rowCount()
会返回1
,但如果再次运行(多次),则后续运行将返回0
。
我想知道这是否真的是预期的行为?是不是总是返回1
,因为你基本上正在更新/影响同一行?
答案 0 :(得分:3)
rowCount()
通过UPDATE
语句报告实际修改的行数。如果两次调用相同的UPDATE
语句,则第二次不会有任何行需要修改(因为它们第一次更改)。因此受影响的行数实际上是第二次为0。
如果你在控制台中运行相同的东西,你会看到如下所示的东西,表明虽然一行符合你的标准,但它的列值已经是你试图改变它们的值,因此它们保持不变。 / p>
Rows matched: 1 Changed: 0 Warnings: 0