[英]Fatal error: Call to a member function prepare() on a non-object ERROR
[英]Fatal error: Call to a member function prepare() on a non-object
好的,我从我的用户名存在函数获取了错误。 这是寄存器功能。
public function register($username, $upassword){
if(!$this -> exists($username)) {
$salt = $this->salt();
$date = date('Y-m-d');
$password = $this->md5($upassword, $salt);
$SQL = $this -> db -> prepare("INSERT INTO `user` (username, password, salt, created_at) VALUES(:username, :password, :salt, :date)");
$SQL -> execute(array(':username' => $username, ':password' => $password, ':salt' => $salt,':date' => $date));
return TRUE;
} else {
return FALSE;
}
}
错误似乎来自此行中的prepare语句。
public function exists($username){
$SQL = $this -> db -> prepare("SELECT COUNT(*) FROM `user` WHERE `username` = :username");
$SQL -> execute(array(':username' => $username ));
$count = $SQL -> fetchcolumn(0);
if($count > 0) {
return TRUE;
} else {
return FALSE;
}
}
得到错误:致命错误:在第41行,在functions.php中的非对象上调用成员函数prepare()
存在功能中的第一行是哪一行?
有人能帮我一下吗?
exist()类未“查看”您的$ this-> db,请尝试对其进行调试(如果它确实在引用或可以在exist()类中使用)
如果您尝试以如下方式实例化类: new ClassName($db)
则极有可能未定义$this->db
因为您实际上并未为该类定义可使用$this->db
做任何事情的构造函数$this->db
。
_construct($db)
应该是__construct($db)
假设您想要构造函数魔术方法。 所有魔术方法都以两个下划线开头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.