MySQL更新问题

时间:2010-02-18 23:26:48

标签: php mysql

$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)  or die ("Password update successful!");
echo "Update failed, unknown user";

当名字和姓氏匹配时,这会正确更新数据库,而不会影响数据库。我唯一的问题是我总是显示更新失败,未知的用户消息。我做错了什么?感谢。

3 个答案:

答案 0 :(得分:5)

当SQL查询成功时,mysql_query函数返回true:

  

对于其他类型的SQL语句,   INSERT,UPDATE,DELETE,DROP等,   mysql_query()成功返回TRUE   错误时为FALSE。

您的代码假定查询返回受影响的行数。为此目的使用mysql_affected_rows功能:

$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)
if (mysql_affected_rows() > 0)
  die ("Password update successful!");
else
  echo "Update failed, unknown user";

答案 1 :(得分:2)

你可能需要反过来这样做......

$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)
     or die ("Update failed, unknown user"); 

echo "Password update successful!";

答案 2 :(得分:0)

如果第一部分(mysql_query)的计算结果为true,则无需计算第二部分(die)。你可以使用而不是。

而且,请阅读有关SQL注入的信息。

对您的编码风格的建议:

这样的事情:

if ($result)
   ...success
else 
   ...fail

更具可读性。