【发布时间】:2017-08-19 19:24:22
【问题描述】:
如果没有符合条件的行或匹配的行实际上没有变化,MySQL 更新命令将报告零行受影响。
用户想要编辑他们的个人资料,因此我在数据库中查询"WHERE UserID='$userid'" 行,并在文本字段中显示一个包含每列值的表单供他编辑。
在提交时,我执行更新命令并检查 mysqli_affected_rows 预期 1 是否成功,0 是否失败。如果他实际上没有改变任何东西,它会返回0,我会得到一个错误的错误报告。
我可以想出一些麻烦的方法来避免这种情况,但我希望有人有一个简单的解决方案?
【问题讨论】:
-
您可以添加一个始终更新的 updated_at 字段。也很常见。
-
不通知用户。或添加特定通知 -> “您没有更改任何内容。”并按照 Christopher 的建议添加 updated_at 字段进行检查。
-
是的,LastUpdate 列是我想到的“繁琐”方法。我只是讨厌弄乱代码并扩展数据库