【发布时间】:2014-01-19 10:08:22
【问题描述】:
当我使用 MySQLi 更新 MySQL 数据库中的字段时,我会检查受影响的行数以查看查询是否成功。如果该字段的值实际上没有改变,那么我会收到一条错误消息。例如,如果您尝试将字段“chips”的值更改为“utz”,而该值已经是“utz”,我会收到以下错误:
Could not update record: (0)
这是因为受影响的行数是 0,因为为什么要更改已经是正确值的东西。是否有避免此错误的“良好做法”方法?
我看到人们试图通过更新数据库中的“current_time_stamp”值来解决这个问题,以便始终更新字段。但这似乎不是处理此实例的好方法。
在我的网站上,我尝试检查值是否已更改。我使用 javascript 的 onChange 来调用一个函数,我设置了一个变量来反映所做的更改,我稍后会检查数据库是否应该更新。但这并不总是导致实际的变化。有时即使没有进行任何更改,该函数也会被调用。有什么建议吗?
这是我在检查受影响的行数时使用的代码:
if ($databaseObject->affected_rows)
{
//echo "Success!<br>";
}
else
{
echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>";
}
【问题讨论】:
标签: javascript php mysql mysqli