无法从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,给定布尔值,但我在堆栈上发现人们成功地使用了它。我做错了什么?提前Thnx!向致以最良好的问候

这样尝试,您的mysqli_fetch_assoc返回数组使用$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');
    }