2016-08-22 2 views
0

ich versucht haben, diesen Fehler zu beheben: PHP Fatal error: Call to a member function prepare() on string in /home/...../lib/library.php on line 91 Ich habe auch diesen Link überprüfen: Reference - What does this error mean in PHP? und ich scheinen nicht zu verstehen, wie es beziehen sich auf meine Problem zur Hand. Kann jemand helfen? Dies ist die Skript Linie betroffen:wie sie beheben Rufen auf eine Elementfunktion vorbereiten() auf Zeichenfolge

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()' ist eine Instanz von 'PDO' nicht zurück. Siehe http://php.net/manual/en/book.pdo.php und http://stackoverflow.com/questions/5346186/pdo-call-to-a-member-function-prepare-on-a-on -Objekt –

Antwort

2

Ihr Problem ist hier:

$db = DB(); 

Wenn Sie var_dump() waren die $db Variable Sie es sehen würden, ist gleich ein String mit einem Wert von etwas wie DB oder DB().

es sein sollte:

$db = new DB(); 
Verwandte Themen