"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment corriger l'erreur « Essayer d'obtenir la propriété d'un non-objet » en PHP ?

Comment corriger l'erreur « Essayer d'obtenir la propriété d'un non-objet » en PHP ?

Publié le 2024-11-09
Parcourir:762

How to Fix the

Résolution de l'erreur « Essayer d'obtenir la propriété d'un non-objet » en PHP

Lorsque vous travaillez avec PHP, vous pouvez rencontrer l'erreur « Essayer pour obtenir la propriété du non-objet. Cette erreur se produit généralement lors de la tentative d'accès aux propriétés d'un objet qui n'a pas été correctement initialisé ou qui est nul.

Dans le cas du code fourni, le problème réside dans la récupération des données du menu latéral à partir de la base de données. La fonction mysql_fetch_object() renvoie un seul objet, pas un tableau d'objets. Par conséquent, parcourir la variable $sidemenus dans la page d'affichage déclenchera l'erreur.

Pour résoudre ce problème, modifiez le code sur la page de contrôle comme suit :

$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;
}

Ce code convertit l'objet unique renvoyé par mysql_fetch_object() en un tableau d'objets. La page d'affichage peut ensuite parcourir le tableau sans rencontrer l'erreur de propriété.

Une autre alternative consiste à utiliser PDO, qui fournit une interface plus moderne et sécurisée pour les interactions avec la base de données. La méthode PDOStatement::fetchAll(PDO::FETCH_OBJ) peut être utilisée pour récupérer un tableau d'objets à partir d'une requête de base de données.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3