如何从数据库中获取php字符串中的值?

时间:2017-12-20 10:25:14

标签: php mysql

我正在尝试检查密码是否正确。密码位于数据库中并进行哈希处理。我确定与数据库的连接工作,因为其他查询没有问题。 所以我的问题是,它总是返回$ password == false,当密码应该是正确的时候。

这是我的代码:

  public function checkOldPwd($user_name, $pwd) {

      $query = "SELECT 'user_pwd' FROM users WHERE user_name = ?";
      $statement = ConnectionHandler::getConnection()->prepare($query);
      $statement->bind_param('s', $user_name);
      $statement->execute();
      $result = $statement->get_result();

      if(!$result) {
        throw new Exception($statement->error);
      }
      if (password_verify($pwd, $result)) {
        $password = true;
      }else{
        $password = false;
      }

      $result->close();
      return $password;
    }

我希望你能帮助我。

2 个答案:

答案 0 :(得分:-1)

我想删除这个:
$user !== false &&
这是在password_verify

之前

答案 1 :(得分:-1)

您忘记取$result的第一行,其中$user已定义。

$result = $statement->get_result();

if(!$result) {
    throw new Exception($statement->error);
}

$user = $result->fetch_array(MYSQLI_ASSOC);

if ($user !== false && password_verify($pwd, $user['pwd_column_name'])) {
    $password = true;
}else{
    $password = false;
}