2009-07-19 6 views
4

J'ai une classe pour me connecter à ma base de données, supprimer des données et renvoyer des choses à partir d'une requête db. Quoi qu'il en soit, le problème que j'ai est que je suis en train d'appeler la méthode runQuery(), mais chaque fois que je, je reçois cette erreur:Méthode de tentative d'appel: erreur de fonction non définie

Fatal error: Call to undefined function runQuery() in DatabaseConnector.php line 22

Toutes les idées peut-être? Je sais que runQuery est privé mais il est dans la même classe. Juste pour voir je l'ai changé à un chemin public, et encore obtenu la même erreur :(

final class DatabaseConnector 
{ 
    private $db; 

    public function DatabaseConnector() 
    { 
     // constructor 
    } 

    public function connectMySQL($host, $user, $passwrd, $db, $query) 
    { 
     @ $db = new mysqli($host, $user, $passwrd, $db); 

     if (mysqli_connect_errno()) 
     { 
      return mysqli_connect_errno(); 
     } 
     else 
     { 
      $queryResult = runQuery($query); 

      return $queryResult; 
     } 
    } 

    private function runQuery($query) 
    { 
     $result = $db->query($query); 

     return $result; 
    } 
} 

Répondre

14

En PHP, vous avez préfixer méthodes de niveau objet/variables avec $this sinon il va chercher la fonction/variables dans le « espace de noms » global.

changer donc $queryResult = runQuery($query);-$queryResult = $this->runQuery($query);

+0

Ouais, je déteste ça. Je suppose que vous êtes juste habitué. –

+2

en matière de PHP, vous êtes habitué à un grand nombre de petites nuances comme ça –

+0

cool merci, ça travaux :) –

Questions connexes