Supportnet / Forum / Skripte(PHP,ASP,Perl...)
"Call to a member function on a non object"
Frage
Hallo,
Ich habe in einem Programm folgende Fehlermeldung:
"Call to a member function on a non object on line 103"
100: $sqlr = "Select * from .....";
102: $resr = $db->Execute($sqlr);
103: $rr = $resr->FetchRow();
Ich kenn mich jetzt leider mit PHP überhaupt nicht aus, aber kann es sein, dass die Fehlermeldung daher kommt, dass die SQL Abfrage keinen Wert zurückliefert.
Antwort 1 von thomasn1975
Nein, das hat nichts mit SQL zu tun, das ist eine Fehlermeldung vom PHP-Interpreter und besagt, dass $db->Execute() kein gültiges Objekt zurückliefert und somit nicht die Methode FetchRow() aufrufen kann.
Antwort 2 von 345435
Danke für Deinen Hinweis. Leider bin ich jetzt auch nicht schlauer. Das db->execute kein gültiges Object zurückliefert und ich damit auch kein FetchRow machen kann besagt ja schon die Fehlermeldung. Aber wann ist den das der Fall, dass ich kein gültiges Object bekomme? Wenn die SQL Abfrage keinen Wert liefert? Von der Syntax her ist die SQL Anweisung oben übrigens absolut korrekt. Den Datensatz nach dem gefragt wird gibt es halt einfach nicht.
Antwort 3 von Supermax
Dann mußt du eben abfragen, ob $resr überhaupt einen von null oder false verschiedenen Wert hat, bevor du $resr->FetchRow() aufrufst...
Antwort 4 von 3434
@Supermax:
Das beantwortet nicht die Frage, ob das Object dann null oder false wird, wenn die SQL Anweisung keinen Wert zurückliefert.
Das beantwortet nicht die Frage, ob das Object dann null oder false wird, wenn die SQL Anweisung keinen Wert zurückliefert.
Antwort 5 von Supermax
Das müßte in der Dokumentation der verwendeten Datenbank-Klasse stehen. Ansonsten kann man ja auch einfach abfragen, ob der zurückgegebene Wert ein Objekt ist:
if (is_object($resr)) {
...

