Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich den Fehler „Versuch, eine Eigenschaft eines Nicht-Objekts abzurufen' in PHP?

Wie behebe ich den Fehler „Versuch, eine Eigenschaft eines Nicht-Objekts abzurufen' in PHP?

DDD
DDDOriginal
2024-11-08 15:44:02951Durchsuche

How to Fix the

Behebung des Fehlers „Es wird versucht, eine Eigenschaft eines Nichtobjekts abzurufen“ in PHP

Beim Arbeiten mit PHP kann der Fehler „Es wird versucht“ auftreten Eigentum von Nichtobjekten erlangen.“ Dieser Fehler tritt normalerweise auf, wenn versucht wird, auf Eigenschaften eines Objekts zuzugreifen, das nicht ordnungsgemäß initialisiert wurde oder null ist.

Im Fall des bereitgestellten Codes liegt das Problem im Abrufen der Seitenmenüdaten aus der Datenbank. Die Funktion mysql_fetch_object() gibt ein einzelnes Objekt zurück, kein Array von Objekten. Daher löst das Durchlaufen der Variable $sidemenus auf der Ansichtsseite den Fehler aus.

Um dieses Problem zu beheben, ändern Sie den Code auf der Steuerseite wie folgt:

$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);

$sidemenus = array();
while ($sidemenu = mysql_fetch_object($results)) {
    $sidemenus[] = $sidemenu;
}

Dieser Code Konvertiert das von mysql_fetch_object() zurückgegebene einzelne Objekt in ein Array von Objekten. Die Ansichtsseite kann dann das Array durchlaufen, ohne dass der Eigenschaftsfehler auftritt.

Eine weitere Alternative ist die Verwendung von PDO, das eine modernere und sicherere Schnittstelle für Datenbankinteraktionen bietet. Die Methode PDOStatement::fetchAll(PDO::FETCH_OBJ) kann verwendet werden, um ein Array von Objekten aus einer Datenbankabfrage abzurufen.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Versuch, eine Eigenschaft eines Nicht-Objekts abzurufen' in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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