Erreur de fonction membre nulle : un problème de connectivité de la base de données
Lorsque vous rencontrez une erreur « Appel à une fonction membre préparer() sur null » , le problème provient généralement d'une variable non initialisée dans l'instance de classe. Dans votre cas, le problème réside dans l'initialisation manquante de la variable $pdo.
Au sein de votre classe Category, les méthodes fetch_all() et fetch_data() nécessitent toutes deux une connexion PDO. Cependant, le code fourni n’établit pas explicitement cette connexion. Pour résoudre cette erreur, vous devez vous assurer que la variable $pdo est initialisée dans la portée globale avant d'appeler les méthodes de classe.
<code class="php"><?php // Instantiate a new PDO object globally $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); class Category { public function fetch_all() { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat"); $query->execute(); return $query->fetchAll(); } public function fetch_data($cat_id) { global $pdo; // Use the initialized $pdo variable to prepare the SQL query $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?"); $query->bindValue(1, $cat_id); $query->execute(); return $query->fetch(); } } ?></code>
En initialisant la variable $pdo globalement et en vous assurant qu'elle est utilisée dans la classe méthodes, vous établirez une connexion à la base de données appropriée et résoudrez l'erreur « Appel à une fonction membre préparer () sur null ».
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!