Depuis 2 jours, j'essaie de résoudre ce problème, mais malheureusement, aucun résultat. Laissez-moi vous raconter mon histoire sur le problème. J'ai créé une application sur un site et l'application traite les avis. Mais, j'essaye de le mettre sur un autre site, et j'ai copié les fichiers php, le fichier SQL de l'ancien site, et les ai déplacés vers le nouveau site (ils sont sur différents serveurs FTP). Lorsque j'essaie d'accéder aux pages de l'application, je reçois cette ERREUR FATALE:
Erreur fatale: appel de la fonction indéfinie mysqli_connect ()
Le code que j'ai écrit pour me connecter à la base de données est le suivant (avec des informations d'identification cachées):
$con = mysqli_connect("","*the_name*","*the_pass*","*the_database*");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
Pourquoi est-ce que je reçois l'erreur? Cela fonctionne sur l'ancien serveur, et le code, je pense que ce n'est pas le problème, car il fonctionne sur localhost, et sur le nouveau serveur, ce n'est pas le cas. Quelqu'un peut-il m'aider?
L'extension mysqli PHP n'est pas installée sur votre nouveau serveur.
Contactez votre administrateur de serveur.
Si vous hébergez vous-même le serveur, dans le fichier php.ini , supprimez le point-virgule devant l'extensionextension = php_mysqli.dll
Pour CentOS , faites:
Sudo yum install php-mysqli
Sur Ubuntu, j'ai dû installer l'extension php5 mysql.
apt-get install php5-mysql
Il suffit de le faire
Sudo apt-get install php-mysqli
Cela fonctionne parfaitement et est indépendant de la version
Cela se produit lorsque les extensions php ne sont pas utilisées par défaut. Dans votre fichier php.ini, changez
;extension=php_mysql.dll
à extension=php_mysql.dll
.
** Si cette erreur est enregistrée, ajoutez le chemin à ce fichier dll, par exemple
extension=C:\Php\php-???-nts-Win32-VC11-x86\ext\php_mysql.dll
Faites de même pour php_mysqli.dll
et php_pdo_mysql.dll
. Enregistrez et exécutez votre code à nouveau.
En retard à la conversation ...
Si le module est installé et que votre fichier PHP.INI est configuré correctement, consultez le journal des erreurs Apache pour obtenir les informations suivantes:
Avertissement PHP: PHP Démarrage: impossible de charger la bibliothèque dynamique 'C:\php\ext\php_mysqli.dll' - Le module spécifié est introuvable.
Dans ce cas, votre répertoire d'extension n'est pas ce que vous pensez. Vous pouvez avoir besoin de le définir explicitement, comme ceci:
extension_dir="C:\xampp\php\ext"
Si vous hébergez vous-même le serveur et que ce serveur est Apache, vous pouvez également obtenir cette erreur même si vous avez extension=php_mysqli.dll
sans commentaire dans php.ini.
Vous devez également indiquer à Apache où trouver php.ini en utilisant la directive PHPIniDir
dans le fichier httpd.conf d’Apache.
AddHandler application/x-httpd-php .php
PHPIniDir "<path-to-folder-where-php-ini-lives>"
Mysqli n'est pas installé sur le nouveau serveur. Exécutez phpinfo () pour confirmer.
<?php
phpinfo();
Il n'y a pas d'erreur dans le fichier, mais l'extension mysqli PHP n'est pas installée sur votre ordinateur. Veuillez contacter votre fournisseur de services pour résoudre ce problème.
Sur Raspberry Pi, j'ai dû installer l'extension php5 mysql.
apt-get install php5-mysql
Après avoir installé le client, le serveur Web doit être redémarré. Si vous utilisez Apache, ce qui suit devrait fonctionner:
Sudo service Apache2 restart
si vous utilisez Ubuntu 16.04 (peut-être et au-dessus), vous avez déjà ce module, mais pas activé par défaut Faites juste ceci:
Sudo phpenmod mysqli