我想用PDO更新两个表。
SQLSTATE[HY093]: Invalid parameter number:绑定变量个数与令牌个数不匹配
我想在两个表中同时更新用户名和密码。都有一个user_id
字段
public function update($user_id, $username, $password, $province) {
try {
$stmt = $this->db->prepare("UPDATE login INNER JOIN sample ON sample.username = sample.username SET login.username = :username, sample.username=:username WHERE user_id=:user_id");
//$stmt=$this->db->prepare("UPDATE login SET username=:username,password=:password,province=:province WHERE user_id=:user_id");
$stmt->bindparam(":username", $username);
$stmt->bindparam(":password", $password);
$stmt->bindparam(":province", $province);
$stmt->bindparam(":user_id", $user_id);
$stmt->execute();
return true;
} catch (PDOException $e) {
echo $e->getMessage();
return false;
}
}
您需要按照以下方式更改准备好的查询
UPDATE login INNER JOIN sample ON (login.user_id = sample.user_id)
SET login.username = :username, sample.username = :username
WHERE login.user_id = :user_id AND sample.user_id = :user_id