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!