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>
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>
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>
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!