无法从 MySQL 获取密码哈希

Could not fetch password hash from MySQL

我的密码验证有问题。 我正在尝试从我的密码列中获取哈希值,然后使用表单中的密码进行验证。我不确定为什么它不起作用:

        $pass = mysqli_query($link, "SELECT password FROM male_users WHERE email=$email");
        $hash = mysqli_fetch_assoc($pass);
        if (password_verify($password, $hash)) {
            echo('Hello');
        } else  {
            echo('Email or Password not mach');
        }

它返回一个错误:mysqli_fetch_assoc() 期望参数 1 为 mysqli_result,给定的布尔值,但我在堆栈上发现人们成功地使用了它。我究竟做错了什么?提前谢谢! 最好的问候

尝试这样和你的 mysqli_fetch_assoc return 数组所以使用 $hash['password'] 而不是 $hash 最后在 where 条件中使用单引号 .

 $pass = mysqli_query($link, "SELECT password FROM male_users WHERE email='$email'");
    $hash = mysqli_fetch_assoc($pass);
    if (password_verify($password, $hash['password'])) {
        echo('Hello');
    } else  {
        echo('Email or Password not mach');
    }