Pourquoi est-ce que je reçois une « Erreur fatale : appel à une fonction membre préparer() sur null » lorsque j'essaie de récupérer des catégories ?

Mary-Kate Olsen
Libérer: 2024-10-30 16:49:03
original
131 Les gens l'ont consulté

Why am I getting a

Erreur fatale : appel mystérieux à une fonction membre nulle

Requête :

Je' Je rencontre l'erreur déroutante "Erreur fatale : appel à une fonction membre préparer() sur null" lorsque j'essaie de récupérer une liste de catégories à l'aide de ce code :

<code class="php">$category = new Category;
$categories = $category->fetch_all();</code>
Copier après la connexion

Contexte :

La classe Category a les méthodes suivantes :

<code class="php">class Category {
    public function fetch_all() {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat");
        ...
    }

    public function fetch_data($cat_id) {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?");
        ...
    }
}</code>
Copier après la connexion

J'ai utilisé ce code avec succès dans deux autres sections de mon projet, mais cela me pose problème ici.

Réponse :

Le problème se pose car la variable $pdo est nulle. Il doit être initialisé avec un objet PDO avant que les méthodes de classe puissent être appelées. Cela est dû à la façon dont les méthodes ont été implémentées dans la classe Category.

Pour corriger l'erreur, ajoutez le code suivant à votre script :

<code class="php">$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);</code>
Copier après la connexion

Assurez-vous que ce code est placé dans la portée globale, avant tout appel aux méthodes de la classe Category.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!