2016-08-22 98 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(); 
相關問題