web-dev-qa-db-fra.com

Erreur fatale: appel de la fonction indéfinie mysqli_connect ()

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?

27
Emi

L'extension mysqli PHP n'est pas installée sur votre nouveau serveur. 

Contactez votre administrateur de serveur.

4
Satish Sharma

Si vous hébergez vous-même le serveur, dans le fichier php.ini , supprimez le point-virgule devant l'extensionextension = php_mysqli.dll

24
Dave O'Dwyer

Pour CentOS , faites:

Sudo yum install php-mysqli
14
Zoran

Sur Ubuntu, j'ai dû installer l'extension php5 mysql.

apt-get install php5-mysql

8
Rehmat

Il suffit de le faire

Sudo apt-get install php-mysqli

Cela fonctionne parfaitement et est indépendant de la version

7

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.

5
RemyG

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"
2
Jahmic

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>"
1
AaronDanielson

Mysqli n'est pas installé sur le nouveau serveur. Exécutez phpinfo () pour confirmer.

<?php 

phpinfo();
0
Goldbug

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.

0
Utkarsh Dixit

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
0
Mohamad Osama

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
0
Yu Jiaao