2009-07-19 7 views
4

Ich habe eine Klasse, um eine Verbindung zu meiner Datenbank herzustellen, Dinge zu entfernen und Dinge aus einer Datenbankabfrage zurückzugeben. Wie auch immer, das Problem, das ich habe ist, dass ich runQuery() Methode aufrufen, ich versuche aber jedes Mal, wenn ich versuche, erhalte ich diesen Fehler:Versuchen, Methode aufzurufen: undefined Funktionsfehler

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

Irgendwelche vielleicht Ideen? Ich weiß runQuery ist privat, aber es ist innerhalb der gleichen Klasse. Just for Kicks habe ich es zu öffentlichen irgendeiner Weise, und immer noch die gleichen Fehler :(

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; 
    } 
} 

Antwort

14

In PHP Sie müssen Objektebene Präfix Methoden/Variablen mit $this sonst ist es für die Funktion/Variable aussehen im globalen „Namensraum“.

So $queryResult = runQuery($query);-$queryResult = $this->runQuery($query);

+0

Ja ändern, ich hasse das. ich denke, man nur daran gewöhnen. –

+2

Wenn es um PHP kommt, Sie zu viele kleine Nuancen gewöhnen wie das. –

+0

cool danke, das funktioniert :) –