我有一个方法可以让我看到用户是否存在:
public function login_user($user_name, $user_password){
$this->statement = $this->conn->prepare('SELECT * FROM users WHERE user_name=:user_name AND user_password=:user_password');
$this->statement = $this->conn->bindParam(':user_name', $user_name);
$this->statement = $this->conn->bindParam(':user_password', $user_password);
$this->statement->execute();
return $this->statement->fetch(PDO::FETCH_ASSOC);
}
我之前从未使用过PDO而且我有点困惑。我收到了错误:
Call to undefined method PDO::bindParam()
。
我已经看到答案说这是因为它是PDOStatement类的一部分。
通过将我的代码更改为此(删除$ this-> conn)修复它:
$this->statement->bindParam(':user_name', $user_name);
$this->statement->bindParam(':user_password', $user_password);
但是,我不明白为什么? $this->conn
是PDO对象。我刚才做了什么才能做到这一点?
答案 0 :(得分:2)
只是做
$this->statement->bindParam()
绑定参数,然后可以调用执行语句
答案 1 :(得分:0)
对您的功能进行以下更改:
public function login_user($user_name, $user_password){
//prepare the query
$query='SELECT * FROM users WHERE user_name=:user_name AND user_password=:user_password';
$statement = $this->conn->prepare($query);
//bind the parameters
$statement->bindParam(':user_name', $user_name);
$statement->bindParam(':user_password', $user_password);
//excute & fetch the data
$statement->execute();
$result = $statement->fetch(PDO::FETCH_ASSOC);
return $result;
}