Php PDO mysql更新错误

Php PDO mysql更新错误,php,mysql,pdo,Php,Mysql,Pdo,我好像犯了个错误,我真的不明白。该过程工作正常,与数据库的连接正常,但由于某些原因,它不会更新。对我来说没有可见的错误,或者php可以识别的错误。下面是代码:(注意最后一个缺失)在我所知道的类上,当我复制粘贴它时发生的,代码中没有问题 public function change_password($user, $pass) { if($user) { $password = md5($pass); $this->_query = $this

我好像犯了个错误,我真的不明白。该过程工作正常,与数据库的连接正常,但由于某些原因,它不会更新。对我来说没有可见的错误,或者
php
可以识别的错误。下面是代码:(注意最后一个缺失)在我所知道的类上,当我复制粘贴它时发生的,代码中没有问题

    public function change_password($user, $pass) {
    if($user) {
        $password = md5($pass);
        $this->_query = $this->_pdo->prepare("UPDATE users SET password = ? WHERE ? = ?");
        if($this->_query->execute(array($pass, Check::data($user), $user))) {
            return true;
        }
    }
    return false;
}



class Check {
public static function data($data) {
    if($data) {
        if(is_numeric($data)) {
            $_id = 'id';
        } else if(filter_var($data, FILTER_VALIDATE_EMAIL)) {
            $_id = 'email';
        } else {
            $_id = 'username';
        }
        return $_id;
    }
    return false;
} 

}

如果有人被打扰,我解决了这个问题,对于未来的模拟问题,我找到了解决方法

    public function change_password($user, $pass) {
    if($user) {
        $pass = md5($pass);
        $id = $this->id($user);

        $this->_query = $this->_pdo->prepare("UPDATE users SET password = ? WHERE id = ?");
        if($this->_query->execute(array($pass, $id))) {
            return true;
        }
    }
    return false;
}


    public function id($user) {
    if($user) {
        $params = $this->fetch($user);

        foreach($params as $param) {
            if($param['id']) {
                return $param['id'];
            }
        }
    }
    return false;
}

    public function fetch($user) {
    if($user) {
        if(Check::data($user) === 'id') {
            $this->_query = $this->_pdo->prepare("SELECT * FROM users WHERE id = :user");
        }

        if(Check::data($user) === 'email') {
            $this->_query = $this->_pdo->prepare("SELECT * FROM users WHERE email = :user");
        }

        if(Check::data($user) === 'username') {
            $this->_query = $this->_pdo->prepare("SELECT * FROM users WHERE username = :user");
        }

        $this->_query->execute(array(':user' => $user));
        return $this->_query->fetchAll();           
    }
    return false;
}`class Check {
public static function data($data) {
    if($data) {
        if(is_numeric($data)) {
            $_id = 'id';
        } else if(filter_var($data, FILTER_VALIDATE_EMAIL)) {
            $_id = 'email';
        } else {
            $_id = 'username';
        }
        return $_id;
    }
    return false;
} }

在哪里?=可能的重复应该是
其中column\u name=?
我知道,所以我更改了它。