好吧我从我的用户名存在函数中得到错误。 这是寄存器功能。
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()
哪个是存在函数中的第一行?
有人可以帮我吗?
答案 0 :(得分:0)
exists()类没有'看到'你的$ this-> db,尝试调试它,如果它真的是引用或者可以在exists()类中使用
答案 1 :(得分:0)
如果你试图像这样实例化你的类:new ClassName($db)
那么$this->db
很可能没有被定义,因为你实际上没有为你的类定义一个构造函数,它对{{{{{ 1}}。
$this->db
应为_construct($db)
假设你想要构造函数魔术方法。所有魔术方法都以两个下划线开头。