$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";
当名字和姓氏匹配时,这会正确更新数据库,而不会影响数据库。我唯一的问题是我总是显示更新失败,未知的用户消息。我做错了什么?感谢。
答案 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
更具可读性。