0

好吧,我从我的用户名存在函数中得到了错误。这是注册功能。

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;
  }
} 

错误似乎来自这一行中的准备语句。

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()

存在函数中的第一行是哪一行?

有人能帮我一下吗?

4

2 回答 2

0

如果您尝试像这样实例化您的类:new ClassName($db)那么$this->db很可能没有定义,因为您实际上还没有为您的类定义一个对$this->db.

_construct($db)应该__construct($db)

假设您想要构造函数魔术方法。所有魔术方法都以两个下划线开头。

于 2013-04-10T04:40:00.560 回答
0

exists() 类没有“看到”你的 $this->db,尝试调试它,如果它确实在引用或者可以在 exists() 类中使用

于 2013-03-26T08:15:18.773 回答