Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens une « Erreur fatale : fetch_assoc() sur un non-objet » dans mes requêtes de base de données PHP ?

Pourquoi est-ce que j'obtiens une « Erreur fatale : fetch_assoc() sur un non-objet » dans mes requêtes de base de données PHP ?

Linda Hamilton
Libérer: 2024-12-09 00:23:14
original
770 Les gens l'ont consulté

Why Am I Getting a

Erreur fatale : fetch_assoc() sur un non-objet

Lors de l'exécution de requêtes de base de données, vous pouvez rencontrer le message d'erreur suivant :

Fatal error: Call to a member function fetch_assoc() on a non-object
Copier après la connexion

Cette erreur se produit lorsque la méthode fetch_assoc() est appelée sur un non-objet, généralement un mysqli_result objet.

Analyse du problème :

Dans l'extrait de code fourni, vous avez peut-être écrit une fonction comme celle-ci :

function get_recent_highs(...){
    $result = $this->database->query($query);
    while($row = $result->fetch_assoc()) {...}
}
Copier après la connexion

Si $ le résultat est un non-objet, l'appel fetch_assoc() échouera. Cela peut se produire s'il y a une erreur dans la requête SQL, ce qui fait que query() renvoie false au lieu d'un objet de résultat.

Solution :

Pour résoudre le problème erreur, vérifiez la valeur de retour de query(). S'il renvoie false, lancez une exception ou gérez l'erreur en conséquence. Par exemple :

function get_recent_highs(...){
    $result = $this->database->query($query);
    if (!$result) {
        throw new Exception("Database Error");
    }
    while($row = $result->fetch_assoc()) {...}
}
Copier après la connexion

En détectant l'erreur dans query(), vous pouvez vous assurer que fetch_assoc() n'est appelé que sur un objet de résultat valide, empêchant ainsi l'erreur non-objet.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal