UPDATE MySQL的问题

时间:2011-08-20 14:10:13

标签: php mysql

我的代码有点问题。

我正在为用户创建一个管理面板,以便向数据库添加内容。有时,他们可能会尝试保存数据而不更改它(打开一个对话框,单击保存而不更改任何内容)。当然,这会使mysql_affected_rows()在检查UPDATE查询是否有效时返回“0”。

是否还有其他查询要始终更新,无论数据是否相同(或者我可以修改简单的UPDATE查询以便始终更新)?

修改

这适用于没有编程经验的用户。当然,如果没有理由你不想更新,但是当用户尝试更新并且没有发生时,我最终会显示失败消息。它不是出现问题,而是不需要更新。我需要一种方法来向用户显示,而不是通用的“失败”消息。如果由于其他原因失败了,我仍然需要知道。

1 个答案:

答案 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
    }
}
相关问题