【发布时间】:2017-07-05 17:51:47
【问题描述】:
我正在尝试创建一个函数来更改用户密码:
public function ChangePassword($password)
{
$query = $this->db->prepare("UPDATE users SET password = :password WHERE id=:user_id");
$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 10]);
$query->bindParam("password", $hash, PDO::PARAM_STR);
$query->execute();
return true;
}
但它显示了“未捕获的 PDOException:SQLSTATE[HY093]”。当我使用
$query = $this->db->prepare("INSERT INTO users(password) VALUES (:password)");
而不是
$query = $this->db->prepare("UPDATE users SET password = :password WHERE id=:user_id");
它有效,这意味着我得到了一个带有密码条目的附加行。我没有找到显示正确使用 UPDATE 的文档。
【问题讨论】:
-
您有两个参数,但您只是在
ChangePassword函数中绑定密码。尝试为 :user_id 添加 bindParam