没有使用PDO内部连接更新两个表


Not updating two tables using inner join with PDO?

我想用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