Frage von MisterNeugier, 35

PHP non-object Error. Kann mir wer weiterhelfen? :)

Hier ist mein Code:

public function getAllCase(){

    $sql = "SELECT ID FROM CPU";

    $con = $this->_connect();

    $result = mysqli_query($con, $sql);

    $arrRet = array();

  

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

      $arrRet[] = $this->getCase($row->ID);

    }

}

Und das ist der Error: 

Fatal error: Call to a member function fetch_object() on a non-object in /users/pathfinder/www/lib/SqlReposetory.php on line 84
Antwort
von regex9, 18
  1. Repository wird mit i geschrieben, nicht mit e
  2. Prüfe einmal, welchen Wert $result zugewiesen bekommt. Wahrscheinlich schlägt die Datenbankanfrage fehl und der Wert false wird zurückgegeben. Dieser ist dann natürlich ein primitiver Datentyp.
Antwort
von RakonDark, 11

gibt hier einige lösungen , der fehler wird leider nur bei dem php eigenen fehler angzeigt , es kann gut sein das $this->_connect schon ein problem hat , daraus folgt das es keine $con gibt und damit auch keine verbindung und kein ergebnis zustande kommt .

$this auf eine function bezogen ist auch sehr ungewöhnlich , normalerweise ist das ganze ein objekt und da fehlt uns leider das gesamte $this dazu .

klar ist das $result keine member funktion hat die fetch_object heisst .

Ich würde pdo nehmen, da man die fehler da besser abfangen und am ende ausgeben kann . aber wenn alles richtig ist sollte natürlich auch das prozedurale mysqli_query funktionieren .

also prüfe wo überhaupt der fehler auftritt .

p.s. das connect in die function einzubauen ist auch etwas unwürdig . wenn das php sowieso irgendwelche querys nutzt sollte man es vorher machen , damit man nicht bei allem und jeden wieder neu connected , das ist auch performanter .


Antwort
von RedKungFuMastr, 6

Mal ehrlich, hier sollten Regeln gelten, wie man solche Fragen formuliert oder auslagert --"

Schon mal was von Pastebin gehört? Würde schon helfen, wenn der ganze Code zu sehen ist... anstatt nur eine Methode...

Hier sieht man nur, entweder der Query oder deine_connect() Methode sei der Fehler... falscher Host? Falsches Passwort? Falscher User?Port?...

Sie kennen die Antwort?

Fragen Sie die Community