Maison  >  Article  >  développement back-end  >  Solution à l'erreur fatale PHP : appel à la méthode non définie PDO::prepare() dans

Solution à l'erreur fatale PHP : appel à la méthode non définie PDO::prepare() dans

PHPz
PHPzoriginal
2023-06-22 18:40:40995parcourir

PHP, en tant que langage de développement Web populaire, est utilisé depuis longtemps. La classe PDO (PHP Data Object) intégrée à PHP est un moyen courant pour nous d'interagir avec la base de données lors du développement d'applications Web. Cependant, un problème que certains développeurs PHP rencontrent souvent est que lorsqu'ils utilisent des classes PDO pour interagir avec la base de données, ils reçoivent des erreurs comme celle-ci :

Erreur fatale PHP : Appel à la méthode non définie PDO::prepare() dans

Ce message d'erreur signifie que nous utilisons la méthode PDO::prepare(), mais le moteur PHP ne semble pas trouver cette méthode. Alors pourquoi cela arrive-t-il ? Plus important encore, comment devrions-nous résoudre ce problème ?

Tout d'abord, nous devons comprendre la classe PDO de PHP et certaines de ses utilisations de base. PDOException est une sous-classe de la classe PDO, utilisée pour gérer les exceptions pouvant survenir lors des opérations de base de données. Lorsque nous envoyons une requête de requête à la base de données MySQL, nous pouvons utiliser la méthode PDO::prepare(). Cette méthode envoie l'instruction de requête au serveur MySQL. Le serveur MySQL compile l'instruction de requête en code exécutable et renvoie une instruction préparée (objet PDOStatement). Plus tard, nous pourrons utiliser cette instruction plusieurs fois dans ce script PHP pour effectuer des opérations de requête identiques ou différentes. La syntaxe de base de la méthode PDO::prepare() est la suivante :

$stmt = $pdo->prepare($query);

Ici, $stmt est un objet PDOStatement et $query est la requête MySQL. déclaration que nous voulons exécuter (utilisez des espaces réservés de point d'interrogation au lieu de paramètres et de valeurs spécifiques).

Cependant, dans certains cas, lorsque nous essayons d'utiliser la méthode PDO::prepare(), l'erreur « Erreur fatale PHP : Appel à la méthode non définie PDO::prepare() dans » apparaîtra. Voici un aperçu de ce qui peut être à l'origine de ce problème et comment le résoudre.

  1. La version PHP est trop ancienne

Tout d'abord, nous devons nous assurer que notre version PHP prend en charge PDO. PDO a été introduit dans la version PHP 5.1, nous devons donc utiliser au moins la version PHP 5.1 et supérieure. Si nous utilisons PDO dans une version antérieure de PHP, nous obtiendrons une erreur de méthode non définie.

  1. PDO n'est pas activé dans le fichier de configuration

Même si nous avons utilisé PHP 5.1 ou une version plus récente, nous devons déterminer si l'extension PDO est activée dans le fichier de configuration PHP php.ini. On peut simplement vérifier si les lignes suivantes sont présentes dans le fichier :

extension=pdo.so
extension=pdo_mysql.so

Si ces lignes ne sont pas présentes, il faut les ajouter au fichier et redémarrer le serveur web pour assurez-vous que les modifications prennent effet. Si vous ne savez pas comment modifier le fichier php.ini, vous pouvez saisir la commande suivante dans le terminal :

sudo vi /etc/php.ini

Ensuite, vous pouvez utiliser l'éditeur de texte vim pour ouvrir le php. ini et modifiez-le. Après avoir enregistré et quitté le fichier, vous devez redémarrer le serveur Web.

  1. Classe PDO non importée

Avant d'utiliser PDO dans notre script PHP, nous devons nous assurer que la classe PDO a été importée. Nous devons ajouter le code suivant au début du script PHP :

c9aeed4f24186a1d601e7cab897b1947

Ici, $pdo est un objet PDO, et mydb, le nom d'utilisateur et le mot de passe sont des détails liés à la connexion à la base de données MySQL. Nous pouvons également utiliser les options PDO telles que ATTR_ERRMODE pour définir le niveau de rapport d'erreurs PDO.

  1. Utiliser une mauvaise classe PDO

En PHP, il existe deux façons d'implémenter la classe PDO : PDO et PDO_MYSQL. Si nous utilisons PDO_MYSQL, nous devons utiliser la méthode PDO_MYSQL::prepare() au lieu de la méthode PDO::prepare().

Voici la syntaxe de requête de base utilisant la classe PDO_MYSQL :

$stmt = $pdo->prepare($query);

Veuillez noter que la variable $pdo est un objet créé à l'aide de la classe PDO_MYSQL.

  1. Extension MySQL PDO manquante

Enfin, si notre script PHP utilise un serveur de base de données MySQL, nous devons alors nous assurer que l'extension MySQL PDO est installée sur le serveur PHP. Nous pouvons vérifier si cette extension est installée à l'aide de la commande suivante :

php -m | grep pdo_mysql

Si la commande ci-dessus renvoie "pdo_mysql", cela signifie que l'extension pdo_mysql est installée sur notre serveur. Sinon, nous devons installer cette extension sur le serveur.

Enfin, nous devons activer l'extension pdo_mysql dans le fichier php.ini. Nous pouvons l'activer en ajoutant la ligne suivante dans le fichier :

extension=pdo_mysql.so

En résumé, la méthode pour résoudre l'erreur fatale PHP : Appel à la méthode non définie PDO::prepare() dépend de la cause première du problème. problème. Pour les raisons ci-dessus, il existe de nombreuses façons de résoudre ce problème. Quelle que soit la situation, nous devons l’examiner attentivement et essayer quelques solutions possibles.

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