Lorsque vous utilisez l'extension mysqli pour vous connecter et faire fonctionner la base de données MySQL, vous rencontrerez parfois l'erreur PHP Fatal error : Appel à la méthode non définie mysqli::prepare(). Cette erreur est généralement causée par les raisons suivantes :
- La prise en charge insuffisante de PHP pour l'extension mysqli
- l'extension mysqli n'est pas chargée ou configurée correctement ; #🎜 🎜 #
Il y a une erreur de syntaxe dans le code PHP ; - Le serveur MySQL n'est pas configuré correctement ou est en cours d'exécution ;
-
Pour ces raisons, le Les solutions seront présentées ci-dessous.
Vérifiez la prise en charge de PHP pour l'extension mysqli -
Tout d'abord, nous devons vérifier si PHP a activé l'extension mysqli. Vous pouvez obtenir des informations PHP sur l'extension mysqli via la fonction phpinfo(). La méthode est la suivante :
1) Créez un fichier php, nommé phpinfo.php, et copiez-y le code suivant :
<?php
phpinfo();
?>
Copier après la connexion
2) Téléchargez ce fichier php sur le répertoire racine du site Web, et saisissez http://votredomaine.com/phpinfo.php dans le navigateur pour accéder au fichier ;
3) Dans la page d'informations PHP, vérifiez si l'extension "mysqli" a été chargée. Sinon, vous devez activer l'extension mysqli dans le fichier php.ini.
Configurer l'extension mysqli
S'il est confirmé que l'extension mysqli est supportée, mais qu'une erreur fatale PHP se produit toujours : Appel à une méthode non définie mysqli: :prepare() erreur, vous devez alors vérifier si la configuration de l'extension mysqli est correcte.
Tout d'abord, vérifiez si l'extension mysqli a été correctement chargée. Vous pouvez confirmer en recherchant le code suivant dans le fichier de configuration PHP php.ini :
extension=mysqli.so
Si le code ci-dessus n'est pas trouvé, vous devez changez-le dans php.ini Définissez le chemin de chargement de l'extension mysqli.
Ensuite, nous devons vérifier si les paramètres utilisés lors de la connexion à la base de données sont corrects. Normalement, une connexion mysqli nécessite 4 paramètres : nom d'hôte, nom d'utilisateur, mot de passe et nom de base de données. Assurez-vous que ces 4 paramètres sont correctement configurés. Par exemple :
$host = 'localhost';
$username = 'user';
$password = 'pwd';
$database_name = 'testdb';
$conn = new mysqli($host, $username, $password, $database_name);
Copier après la connexion
Enfin, si l'extension mysqli n'est pas configurée correctement, vous pouvez essayer de configurer manuellement la version mysqli dans votre code. Par exemple :
$conn = new mysqli();
$conn -> init();
$conn -> options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
$conn -> real_connect($host, $username, $password, $database_name);
Copier après la connexion
Vérifier la syntaxe du code PHP
Lors de l'utilisation de l'extension mysqli, s'il y a une erreur de syntaxe dans le code PHP, cela provoquera également une erreur PHP fatale : appel à une erreur mysqli::prepare() de méthode non définie. Par conséquent, nous devons vérifier notre code pour les erreurs de syntaxe.
Vous pouvez utiliser un éditeur de code ou un outil IDE pour vérifier la syntaxe, notamment pour vérifier s'il manque des points-virgules, des accolades qui ne correspondent pas, etc.
Vérifiez le serveur MySQL
Si les mesures ci-dessus ne parviennent toujours pas à résoudre le problème, vous devez vérifier si le serveur MySQL est en cours d'exécution et a été configuré correctement.
Tout d'abord, vérifiez si le serveur MySQL a été démarré. Vous pouvez vérifier sur le terminal en utilisant la commande suivante :
sudo service mysql status
Copier après la connexion
Si vous utilisez MariaDB, vous pouvez essayer la commande suivante :
sudo service mariadb status
Copier après la connexion
Vous devez vérifier si MySQL ou Le service MariaDB est en cours d'exécution. Si la base de données MySQL est correctement configurée. Vous pouvez utiliser le client MySQL pour vous connecter à la base de données MySQL et vérifier si la base de données et les tables requises existent.
mysql -u username -p
Copier après la connexion
Entrez votre mot de passe et consultez la base de données actuelle :
SHOW DATABASES;
Copier après la connexion
Si votre base de données n'est pas dans la liste, vous devez la créer manuellement.
Si vous avez configuré correctement le serveur et la base de données MySQL, alors le problème vient probablement de la partie PHP. Vous pouvez vérifier si le code PHP appelle correctement la classe mysqli et ses méthodes.
Résumé
Lors de l'utilisation de l'extension mysqli, si une erreur PHP Fatal error: Call to undefined method mysqli::prepare() se produit, vous devez d'abord vérifier si PHP prend en charge l'extension mysqli. , si l'extension mysqli est chargée et configurée correctement, s'il y a des erreurs de syntaxe dans le code PHP et si la base de données MySQL est correctement configurée. Ce n'est que lorsque les problèmes ci-dessus seront éliminés que vous pourrez continuer à résoudre d'autres problèmes.
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!