Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich in meinen PHP-Datenbankabfragen einen „Schwerwiegenden Fehler: fetch_assoc() für ein Nicht-Objekt'?
Schwerwiegender Fehler: fetch_assoc() auf einem Nicht-Objekt
Beim Ausführen von Datenbankabfragen kann die folgende Fehlermeldung auftreten:
Fatal error: Call to a member function fetch_assoc() on a non-object
Dieser Fehler tritt auf, wenn die fetch_assoc()-Methode für ein Nicht-Objekt aufgerufen wird, normalerweise ein mysqli_result-Objekt.
Problemanalyse:
Im bereitgestellten Codeausschnitt haben Sie möglicherweise eine Funktion wie die folgende geschrieben:
function get_recent_highs(...){ $result = $this->database->query($query); while($row = $result->fetch_assoc()) {...} }
If Da $result kein Objekt ist, schlägt der Aufruf von fetch_assoc() fehl. Dies kann auftreten, wenn in der SQL-Abfrage ein Fehler vorliegt, der dazu führt, dass query() „false“ anstelle eines Ergebnisobjekts zurückgibt.
Lösung:
Um das zu beheben Fehler, überprüfen Sie den Rückgabewert von query(). Wenn „false“ zurückgegeben wird, lösen Sie eine Ausnahme aus oder behandeln Sie den Fehler entsprechend. Zum Beispiel:
function get_recent_highs(...){ $result = $this->database->query($query); if (!$result) { throw new Exception("Database Error"); } while($row = $result->fetch_assoc()) {...} }
Indem Sie den Fehler in query() abfangen, können Sie sicherstellen, dass fetch_assoc() nur für ein gültiges Ergebnisobjekt aufgerufen wird, wodurch der Nicht-Objekt-Fehler verhindert wird.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinen PHP-Datenbankabfragen einen „Schwerwiegenden Fehler: fetch_assoc() für ein Nicht-Objekt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!