我的代码有点问题。
我正在为用户创建一个管理面板,以便向数据库添加内容。有时,他们可能会尝试保存数据而不更改它(打开一个对话框,单击保存而不更改任何内容)。当然,这会使mysql_affected_rows()在检查UPDATE查询是否有效时返回“0”。
是否还有其他查询要始终更新,无论数据是否相同(或者我可以修改简单的UPDATE查询以便始终更新)?
修改的
这适用于没有编程经验的用户。当然,如果没有理由你不想更新,但是当用户尝试更新并且没有发生时,我最终会显示失败消息。它不是出现问题,而是不需要更新。我需要一种方法来向用户显示,而不是通用的“失败”消息。如果由于其他原因失败了,我仍然需要知道。
答案 0 :(得分:4)
来自MySQL文档:
如果将列设置为当前的值,MySQL会注意到这一点 并且不会更新它。
不要检查mysql_affected_rows
,只需检查查询是否成功:
if(!mysql_query("UPDATE ..."))
{
//failure
}
else
{
$verification = mysql_query("SELECT ROW_COUNT() as rows_affected");
$row = mysql_fetch_row($verification);
$rows_affected = $row[0];
if ($rows_affected > 0)
{
//update was performed
}
else
{
//no update was needed
}
}