我正在使用 PDO 进行更新查询。我想知道我的更新查询是否没有更改数据库中的任何内容,因为:
- 传递的值与数据库中已有的值相同。我知道
rowCount()
在这种情况下返回0
.
- 我尝试更新的行在数据库中不存在。据我所知,
rowCount()
在这种情况下也会返回0
.
我是否被迫在 UPDATE 之前添加 SELECT 语句,以确定我尝试更新的记录是否确实存在?或者对于这类事情还有另一种常见的做法吗?
我一直在仔细阅读文档,但找不到结论性的答案:http://php.net/manual/en/pdostatement.rowcount.php
我遇到过这个 StackOverflow 答案,这表明 rowCount() 在某些情况下可能会返回 NULL,但我认为它不适用于我的情况:
看为什么在更新表后不修改现有数据的情况下 PDO rowCount() 返回 0?
从这个问题的评论来看:
如果数据未被修改,则 rowCount 将为零。如果
数据被修改时,rowCount 将为 1 或更高。如果有一个
错误,rowCount 将为 null 或 false 或非零值。
UPDATE我发现了另一个问题,在下面的评论中给出了该提议的示例:使用 PDO 获取插入和更新 ID
UPDATE2另一个问题提出了另一种解决方案,通过PDO::MYSQL_ATTR_FOUND_ROWS
PDO - 检查行是否已更新?
您可以将条件添加到“where”子句中,例如“and ColumnToUpdate 'NewValue'”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)