Maison > développement back-end > tutoriel php > Pourquoi est-ce que je reçois l'erreur « Appel à une fonction membre prepare() sur un non-objet » en PHP ?

Pourquoi est-ce que je reçois l'erreur « Appel à une fonction membre prepare() sur un non-objet » en PHP ?

DDD
Libérer: 2024-11-28 11:45:14
original
641 Les gens l'ont consulté

Why Am I Getting the

PHP : Correction de l'erreur « Appel à une fonction membre préparer() sur un non-objet »

Lors de l'utilisation d'instructions préparées en PHP , l'erreur « Appel à une fonction membre préparer() sur un non-objet » indique une connexion à la base de données incorrecte ou manquante. Pour résoudre ce problème, assurez-vous que la connexion à la base de données est correctement créée et accessible dans la fonction.

Dans l'exemple fourni, l'erreur se produit car la variable $DBH n'est pas accessible dans la fonction selectInfo(). Cela est dû à une portée variable. Pour résoudre ce problème, nous avons plusieurs options :

  1. Utiliser le mot-clé global :

    • Rendre la variable $DBH globale en la préfixant avec global, permettant à la fonction d'y accéder. Cependant, cela n'est pas recommandé car cela pollue l'espace de noms global.
  2. Passez la connexion à la base de données en tant que paramètre :

    • Passez la variable $DBH en paramètre à la fonction selectInfo(), en garantissant sa disponibilité au sein de la fonction. Cela maintient la localité variable mais nécessite de modifier l'appel de fonction.
  3. Créer une fonction de récupération de connexion à la base de données :

    • Définir une fonction pour récupérer la connexion à la base de données, la rendant disponible aux fonctions qui en ont besoin. Cela encapsule la logique de connexion et évite de référencer des variables globales.
  4. Implémenter une classe Wrapper de base de données :

    • Encapsuler l'accès à la base de données au sein d'une classe, fournissant une interface pour effectuer des opérations sans manipuler directement la connexion. Cela permet une gestion centralisée des connexions et simplifie les interactions avec la base de données.
  5. Utilisez un cadre ou une bibliothèque pré-construit :

    • Utiliser des frameworks établis ou des bibliothèques d'accès aux bases de données, qui fournissent un moyen structuré et efficace de gérer les connexions et les opérations de bases de données, y compris les déclarations.

En employant l'une de ces méthodes, vous pouvez établir une connexion appropriée et résoudre l'erreur "Appel à une fonction membre préparer() sur un non-objet", permettant à votre instruction préparée de s'exécuter avec succès.

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