Je suis en train de faire un tutoriel et j'obtiens cette erreur:
Erreur fatale: classe 'MySQLi' introuvable (URL LONG) à la ligne 8
Le code de la ligne 8 est:
$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name);
J'ai vu en ligne quelqu'un m'a dit de voir s'il était activé dans mon phpinfo (), mais il n'y avait rien de répertorié sous pour "mysqli".
De plus, j'utilise la version 5.2.5 de PHP
Réponses:
On dirait que vous devez simplement installer MySQLi .
Si vous pensez que vous avez fait cela et que vous rencontrez toujours un problème, veuillez publier votre système d'exploitation et tout ce qui pourrait aider à le diagnostiquer davantage.
la source
sudo yum install php-mysqli
sudo yum install php56-mysqlnd.x86_64
(choisissez celui correspondant à la version de php que vous avez installée)Vous pouvez vérifier si les bibliothèques mysqli sont présentes en exécutant ce code:
la source
Si vous êtes sur Ubuntu , exécutez:
la source
sudo
apt-get -y install php5-mysql php5-mysqlnd
pour obtenir les deux. C'est ce qui vous manquait, @Hermann Ingjaldsson?Si vous appelez "new mysqli (..)" depuis une classe dont l'espace de noms est espacé, vous pourriez voir une erreur similaire
Fatal error: Class 'foo\bar\mysqli' not found in
. La façon de résoudre ce problème est de le définir explicitement sur l'espace de noms racine avec une barre oblique inverse précédente comme ceci:la source
En plus de décommenter l' extension php_mysqli.dll dans php.ini , décommentez également la directive extension_dir dans php.ini et spécifiez votre emplacement:
Cela a fonctionné pour moi.
la source
./ext
quel chemin relatif. Et je devais renommerphp.ini-development
pourphp.ini
et décommenter dans ce fichierextension=php_mysqli.dll
. Oh garçon, tu ne m'as pas manqué PHP.Mon système d'exploitation est Ubuntu . J'ai résolu ce problème en utilisant:
la source
Comment activer mysqli dans php.ini
Comment charger le fichier php.ini
la source
Si vous êtes sur Docker ...
À l'intérieur du conteneur php RUN:
la source
Cela semble être un problème avec votre installation.
http://www.php.net/manual/en/mysqli.installation.php
la source
J'ai pensé que je pourrais aider n'importe qui avec le même problème en utilisant les serveurs Namesco. J'ai essayé de résoudre ce problème après avoir déplacé une base de données de mon serveur local sur mon ordinateur personnel vers namesco. Ils n'ont pas aidé, ils ont dit que c'était un problème de codage.
Malheureusement, leurs articles de support étaient une perte de temps. Après avoir lu ceci, je suis allé à l'interface d'administration avec une nouvelle détermination.
la source
Certaines distributions (comme Gentoo ) prennent en charge plusieurs installations de PHP, et vous devez vous assurer que vous en utilisez une avec mysqli installé et activé.
Sur Gentoo, j'avais installé un nouveau PHP (avec le drapeau mysqli USE activé), mais j'avais besoin d'activer la nouvelle version de PHP (puisque l'ancienne devait manquer mysqli):
la source
J'ai vérifié tout ci-dessus et cela n'a pas fonctionné pour moi,
Il y a quelques étapes que j'ai trouvées.
J'ai utilisé la version 5.5.9-1ubuntu4.17 de PHP sur Ubuntu 14.04
Vérifiez d'abord le dossier
S'il ne contient pas mysqli.ini , lisez une autre réponse pour l'installer,
Ouvrez
php.ini
find extension_dirDans mon cas, je dois définir
extension_dir = /usr/lib/php5/20121212
Et redémarrez apache2:
/ect/init.d/apache2 restart
la source
Le zip PHP inclut la plupart des extensions couramment utilisées (* .dll sur les fenêtres telles que php_mysqli.dll) dans le répertoire \ ext, mais elles ne sont pas activées par défaut. Vous pourriez obtenir cette erreur fatale en essayant d'utiliser MySQLi:
Pour activer les extensions, ouvrez php.ini (vous devrez peut-être d'abord copier php.ini-development en tant que php.ini) et annulez (ou ajoutez) ces deux lignes:
Et toutes les extensions particulières pour lesquelles vous obtenez des erreurs fatales, par exemple pour mysqli:
la source
sur ubuntu:
la source
Sur une nouvelle installation de PHP, supprimez
;
avantextension_dir
dans php.ini.la source
sur Debian 10
la source
Pour tous ceux qui utilisent docker, j'ai rencontré ce problème et je l'ai résolu en utilisant mon propre Dockerfile au lieu de l'image php: fpm:
la source
J'ai trouvé une solution à ce problème après une longue procédure d'analyse. Après avoir correctement testé mon installation php avec les fonctionnalités de ligne de commande, j'ai découvert que php fonctionnait bien et pouvait fonctionner avec la base de données mysql. Btw. vous pouvez exécuter des fichiers de code avec du code php avec la commande php -f filename.php
Donc j'ai réalisé que quelque chose ne va pas avec Apache.
J'ai créé un fichier avec juste la fonction phpinfo () à l'intérieur.
Ici, j'ai vu que dans la ligne
Loaded Configuration File,
mon fichier de configuration n'était pas chargé, mais il était mentionné (aucun).
Enfin, j'ai trouvé dans la configuration Apache l'entrée
Mais j'ai installé PHP 7 et donc Apache n'a pas pu charger le fichier php.ini car il n'y avait pas d'entrée pour cela. J'ai ajouté
et après le redémarrage Apache tout fonctionne bien.
Ces blocs de code ci-dessus, j'ai trouvé dans mon fichier httpd-xampp.conf. Que ce soit ailleurs dans votre configuration.
Dans le même fichier, j'avais changé avant les paramètres du php 7 en remplacement de la version php 5.
Comme vous pouvez le voir, j'ai installé le package xampp mais ce problème était uniquement du côté d'Apache.
la source
installer l'extension phpXX par PHP. Dans le cas de mon FreeBSD:
la source
J'utilise xampp et mon problème a été résolu une fois que j'ai renommé:
à
PS: N'oubliez pas de redémarrer apache après avoir effectué ce changement!
la source
la source