查询在数据库中受到影响,但仍在PHP中显示错误消息

查询在数据库中受到影响,但仍在PHP中显示错误消息,php,mysqli,Php,Mysqli,这段代码是我用来用令牌验证来更新密码的,我从url获取加密格式的useremail,这就是我在查询中使用md5的原因。 正在执行查询并正确影响表,但它仍显示else错误消息 $password= md5($_POST['password']); $sqlupdateaccount="UPDATE `mydatabasename`.`usertbl` SET `password`='$password'

这段代码是我用来用令牌验证来更新密码的,我从url获取加密格式的useremail,这就是我在查询中使用md5的原因。 正在执行查询并正确影响表,但它仍显示else错误消息

    $password= md5($_POST['password']);
    $sqlupdateaccount="UPDATE `mydatabasename`.`usertbl` 
                        SET `password`='$password' 
                        WHERE MD5(`useremail`)='$useremail' 
                        AND `token`='$token'";
    $result=mysqli_query($con,$sqlupdateaccount);
    if(mysqli_num_rows($result)>0)  // also used if(mysqli_affected_rows($con)) but still same problem
    {
        header("Location:userlogin.php?s=1");
    } else {
        echo "<h3 class='alert alert-danger'>Something Went Wrong</h3>".mysqli_error($con);
    }
$password=md5($_POST['password']);
$sqlupdateaccount=“更新`mydatabasename`.`usertbl`”
设置“密码”=“$password”
其中MD5(`useremail`)='$useremail'
和`令牌'='$token';
$result=mysqli\u查询($con,$sqlupdateaccount);
if(mysqli_num_rows($result)>0)//也使用if(mysqli_impact_rows($con)),但仍然存在相同的问题
{
标题(“位置:userlogin.php?s=1”);
}否则{
echo“出了问题”。mysqli_错误($con);
}
当您有select查询时,应使用

这就是你要寻找的


if(mysqli_num_rows($result)>0{…
更改为
if(mysqli_impact_rows($con)>0{…

请不要使用自己的密码哈希,特别是不要使用
MD5()
SHA1()
.PHP提供并请出于用户安全考虑使用它们。请参阅有关哈希的详细说明。我当然建议您仔细阅读并使用
密码\u hash()
函数和之间有区别。因为您的查询不是选择查询,所以您应该使用mysqli\u受影响的行。为什么您都关注哈希,这根本不是问题所在。