Maison > développement back-end > tutoriel php > 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 ?

DDD
Libérer: 2024-11-08 15:44:02
original
939 Les gens l'ont consulté

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;
}
Copier après la connexion

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal