2016-08-22 97 views
0

我一直在试图解决这一问题的错误做准备():PHP Fatal error: Call to a member function prepare() on string in /home/...../lib/library.php on line 91 我也检查此链接:Reference - What does this error mean in PHP? ,我似乎不知道如何把它与我的问题在眼前。谁能帮忙?这是脚本行受到影响:如何解决调用一个成员函数的字符串

public function Login($username, $password) 
    { 
     try { 
      $db = DB(); 
      $query = $db->prepare("SELECT user_id FROM users WHERE (username=:username OR email=:username) AND password=:password"); 
      $query->bindParam("username", $username, PDO::PARAM_STR); 
      $enc_password = hash('sha256', $password); 
      $query->bindParam("password", $enc_password, PDO::PARAM_STR); 
      $query->execute(); 
      if ($query->rowCount() > 0) { 
       $result = $query->fetch(PDO::FETCH_OBJ); 
       return $result->user_id; 
      } else { 
       return false; 
      } 
     } catch (PDOException $e) { 
      exit($e->getMessage()); 
     } 
    } 
+0

'DB()'没有返回PDO'的'一个实例。参见http://php.net/manual/en/book.pdo.php和http://stackoverflow.com/questions/5346186/pdo-call-toa-a-member-function-prepare-on-a-non -目的 –

回答

2

你的问题是在这里:

$db = DB(); 

如果你要var_dump()$db变量,你会看到它等于与喜欢的东西值的字符串DBDB()

它应该是:

$db = new DB(); 
相关问题