当我使用 MySQLi 更新 MySQL 数据库中的字段时,我会检查受影响的行数以查看查询是否成功。如果该字段的值实际上没有改变,那么我会收到一条错误消息。例如,如果您尝试将字段“chips”的值更改为“utz”,而该值已经是“utz”,我会收到以下错误:
Could not update record: (0)
这是因为受影响的行数为 0,既然如此为什么要更改已经是正确值的内容。是否有避免此错误的“良好实践”方法?
我看到人们试图通过更新数据库中的“current_time_stamp”值来解决这个问题,以便字段始终被更新。但这似乎不是处理这种情况的好方法。
在我的网站上,我尝试检查该值是否已更改。我使用 javascript 的 onChange 来调用函数,我设置了一个变量来反射(reflect)所做的更改,稍后我会检查数据库是否应该更新。但这并不总是会带来实际的变化。有时,即使没有进行任何更改,该函数也会被调用。有什么建议吗?
这是我在检查受影响的行数时使用的代码:
if ($databaseObject->affected_rows)
{
//echo "Success!<br>";
}
else
{
echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>";
}
最佳答案
当查询未正确执行时,您将得到-1。那么为什么不呢:
if ($databaseObject->affected_rows != -1)
{
//echo "Success!<br>";
}
else
{
echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>";
}
关于javascript - MySql 错误 "could not update record"错误号 0 - 当没有更改记录时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215395/