Heim > Backend-Entwicklung > PHP-Tutorial > Warum erhalte ich in meinen PHP-Datenbankabfragen einen „Schwerwiegenden Fehler: fetch_assoc() für ein Nicht-Objekt'?

Warum erhalte ich in meinen PHP-Datenbankabfragen einen „Schwerwiegenden Fehler: fetch_assoc() für ein Nicht-Objekt'?

Linda Hamilton
Freigeben: 2024-12-09 00:23:14
Original
721 Leute haben es durchsucht

Why Am I Getting a

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
Nach dem Login kopieren

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()) {...}
}
Nach dem Login kopieren

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()) {...}
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage