Php MySQL更新问题
当名字和姓氏匹配时,这会正确地更新数据库,如果不匹配,则不会影响数据库。我唯一的问题是我总是显示更新失败的未知用户消息。我做错了什么?谢谢。你可能需要换一种方式来做Php MySQL更新问题,php,mysql,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
$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";
如果第一部分(mysql_查询)的计算结果为true,则无需计算第二部分或第二部分(die)。您可以使用和来代替
请阅读有关SQL注入的内容
对您的编码风格的建议:
大概是这样的:
$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!";
更具可读性。当SQL查询成功时,函数返回true:
对于其他类型的SQL语句,
插入、更新、删除、删除等,
mysql_query()在成功时返回TRUE
或错误为FALSE
您的代码假设查询返回受影响的行数。为此,请使用该功能:
if ($result)
...success
else
...fail
不管结果如何,只会给我一条“密码更新成功”的消息。请记住,mysql\u受影响的\u行仅在数据实际更改时返回一个大于0的值。例如,如果您有一条记录('firstname'、'lastname'、'xyz'),您将获得
0
的UPDATE foo SET User\u Password='xyz'WHERE FstName='firstname'和LstName='lastname'
,尽管有一条记录与WHERE子句匹配。
$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";