首页 > 解决方案 > 查询在数据库中受到影响,但仍然在 PHP 中显示错误消息

问题描述

这部分代码用于通过令牌验证更新密码,我从 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);
    }

标签: phpmysqli

解决方案


当您有选择查询时,应使用mysqli_num_rows 。

mysqli_affected_rows是您正在搜索的内容。

更改if(mysqli_num_rows($result)>0) {...if(mysqli_affected_rows($con)>0) {...


推荐阅读