2013-09-01 3 views
-3

J'ai une erreur (**Fatal Error : Call to undefined method Database::query()**) quelque part dans cette partie, je ne sais pas où est-ce vient. Parce que je viens de changer mon constructeurErreur fatale: Appel à la méthode non définie Base de données :: query()

Class Database{ 

public function __construct(){ 

    $this->getConn(); 
} 
public function getConn(){ 
    return new mysqli("localhost", "root", "", "os_db"); 
} 
public function select($query){ 
    $data = array(); 
    if($result = $this->query($query)){ 
     while($row = $result->fetch_assoc()){ 
      $data[] = $row; 
     } 
    }else{ 
     $data = array(); 
    } 
return $data; 
} 
} 

Si je changé ma requête à ce if($result = $this->getConn()->query($query) .. il fonctionne parfaitement .. est là de toute façon que je dois appeler la connexion je voudrais juste faire comme ce $this->query($query)

+0

Qu'avez-vous changé votre constructeur, et ce qui était avant ? – Foo

+0

'$ this-> query ($ query)' équivalent à 'Database :: query ($ query)' –

+1

Veuillez répéter le message d'erreur avec vos propres mots. Aussi, dites-nous quel est le nom du fichier et le numéro de ligne (c'est dans le message d'erreur). Vous devez * comprendre * ce qui cause l'erreur. –

Répondre

-2
Class Database { 

    public function __construct() { 

    $this->getConn(); 

    } 

    public function getConn() { 

    $db = new mysqli("localhost", "root", "", "os_db"); 
    $this->db = $db; 

    } 

    public function select($query) { 

    $data = array(); 

    if($result = $this->db->query($query)){ 

     while($row = $result->fetch_assoc()){ 

     $data[] = $row; 

     } 

    } else { 

     $data = array(); 

    } 

    return $data; 

    } 

} 

Ou au lieu de se connecter à chaque fois que la classe est appelée, vous pouvez faire quelque chose comme:

Class Database { 

    public function __construct() { 

    } 

    public function getConn() { 

    $db = new mysqli("localhost", "root", "", "os_db"); 
    $this->db = $db; 

    } 

    public function select($query) { 

    $this->getConn(); 

    $data = array(); 

    if($result = $this->db->query($query)){ 

     while($row = $result->fetch_assoc()){ 

     $data[] = $row; 

     } 

    } else { 

     $data = array(); 

    } 

    return $data; 

    } 

} 
+0

@downvoter, raison pour downvot? –

+0

Je crains que vous ayez besoin de plus d'expérience avec OOP –

+0

@ YourCommonSense comme dans quelle partie? –

Questions connexes