Fatal error: Class 'MySQLi' ne trouve pas
Je suis en train de faire un tutoriel et j'obtiens cette erreur:
Fatal error: Class 'MySQLi' not found (URL LONGUE) sur la ligne 8
Le code de la ligne 8 est:
$mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error());
J'ai vu en ligne, quelqu'un a dit pour voir si elle était allumée dans mon phpinfo(), mais il n'y avait rien répertoriés dans les sous pour "mysqli".
Aussi, je suis sous la version de PHP 5.2.5
- Vous pouvez utiliser manuscrite de la classe MYSQLi, de sorte que vous n'avez pas besoin d'installer mysqli. C'est la seule solution si vous ne possédez pas le serveur.
- connexes: stackoverflow.com/questions/19305919/...
Vous devez vous connecter pour publier un commentaire.
Sonne comme vous avez juste besoin de installer MySQLi.
Si vous pensez que vous avez fait et avez toujours un problème, merci de poster votre système d'exploitation et tout ce qui pourrait aider à diagnostiquer plus loin.
sudo yum install php-mysqli
sudo yum install php56-mysqlnd.x86_64
(prenez celui correspondant à la version de php que vous avez installé)Vous pouvez vérifier si la mysqli bibliothèques sont présents par l'exécution de ce code:
Si vous êtes sur Ubuntu, exécutez:
sudo
apt-get -y install php5-mysql php5-mysqlnd
de faire les deux. C'est ce qu'il vous manque, Hermann @Ingjaldsson ?Si vous appelez "new mysqli(..)" à partir de l'intérieur d'une classe qui est des espaces, vous pouvez voir une erreur similaire
Fatal error: Class 'foo\bar\mysqli' not found in
. La façon de résoudre ce problème est de définir explicitement à la racine de l'espace de noms par une barre oblique inverse comme suit:En plus de décommenter la php_mysqli.dll extension dans php.ini, aussi décommentez la extension_dir directive php.ini et indiquez votre adresse:
Ce fait le travail pour moi.
./ext
qui est le chemin d'accès relatif. Et j'ai dû renommerphp.ini-development
àphp.ini
et décommenter dans le fichierextension=php_mysqli.dll
. Oh boy, je n'ai pas manquer de vous PHP.Mon OS est Ubuntu. J'ai résolu ce problème en utilisant:
Semble que problème avec votre installation.
http://www.php.net/manual/en/mysqli.installation.php
J'ai pensé que je pourrais aider quelqu'un avec le même problème à l'aide de Namesco serveurs.
J'ai essayé de résoudre ce problème après le déplacement d'une base de données à partir de mon serveur local sur pc à la maison à namesco. Ils ne voulaient pas aider ils ont dit que c'était un problème de codage.
de l'interface.
Malheureusement, leur soutien articles ont été une perte de temps. Après avoir lu cela, je suis allé à l'interface d'administration avec une détermination nouvelle.
Merci à tous.
Comment Activer mysqli en php.ini
1er (commentaires et ajouter config):
include_path = "C:\php\includes"
2e (commentaires):
extension_dir = "ext"
3ème (commentaires et de modifier la configuration):
extension=C:/PHP/ext/php_mysql.dll
extension=C:/PHP/ext/php_mysqli.dll
Comment charger php.fichier ini
Certaines distributions (comme Gentoo) en charge plusieurs installations de PHP, et vous devez vous assurer que vous utilisez l'un avec mysqli installé et activé.
Sur Gentoo, j'avais installé une nouvelle version de PHP (avec la mysqli UTILISER l'option est activée), mais j'avais besoin d'activer la nouvelle version de PHP (depuis l'ancien doit avoir été absent mysqli):
Cela a résolu le "premier pas trouvé d'erreur" pour moi. Remarque la barre oblique inverse, fonctionne comme un rêve maintenant. Nécessaire uniquement lorsque vous utilisez un espace de noms, mais qui n'a pas de nos jours?
$mysqli = new \MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error());
J'ai vérifié tous les ci-dessus et il ne fonctionne pas pour moi,
Il ya quelques étapes que j'ai trouvé.
J'ai utilisé la Version de PHP 5.5.9-1ubuntu4.17 sur Ubuntu 14.04
D'abord vérifier le dossier
Si elle ne contient pas mysqli.ini, de lire d'autres de réponse pour l'installer,
Ouvrir
php.ini
trouver extension_dirDans mon cas , je dois définir
extension_dir = /usr/lib/php5/20121212
Et redémarrer apache2 :
/ect/init.d/apache2 restart
Le PHP zip comprend plus couramment utilisés extensions (*.dll sur windows, telles que php_mysqli.dll) en vertu de l' \répertoire ext, cependant ils ne sont pas activés par défaut. Vous avez peut-être cette Fatale Erreur lorsque vous essayez d'utiliser MySQLi:
Pour activer les extensions, ouvrez php.ini (vous devrez peut-être de la première copie de php.ini-développement php.ini), et des nations unies-commentaire (ou ajouter) ces deux lignes:
Et à toutes les extensions que vous obtenez des Erreurs Fatales pour l', c'est à dire pour mysqli:
sur ubuntu:
J'ai trouvé une solution pour ce problème après une longue analyse de la procédure.
Après avoir correctement pour tester mon installation de php avec la ligne de commande des fonctionnalités, j'ai découvert que le php est bien le travail et de travailler avec la base de données mysql. Btw. vous pouvez exécuter des fichiers de codes avec code php avec la commande php -f filename.php
J'ai donc réalisé, il doit être quelque chose de mal avec l'Apache.
J'ai fait un fichier avec juste la fonction phpinfo() à l'intérieur.
Ici, j'ai vu que dans la ligne
Chargé Fichier De Configuration
mon fichier de config n'a pas été chargé, au lieu de cela il a été mentionné (aucun).
Finalement, j'ai trouvé dans la configuration d'Apache à l'entrée
<IfModule php5_module>
PHPINIDir "C:/xampp/php"
</IfModule>
Mais j'ai installé PHP 7 et ainsi de l'Apache n'a pas pu charger le php.fichier ini, car il n'y a pas d'entrée pour que.
J'ai ajouté
et après le redémarrage d'Apache tous fonctionne bien.
Ces blocs de code ci-dessus, j'ai trouvé dans mon httpd-xampp.fichier conf. Peut-il est un autre endroit à votre configuration.
Dans le même fichier que j'avais changé avant que les paramètres pour le php 7, en remplacement de la php version 5.
Comme vous pouvez le voir j'ai le package xampp est installé, mais ce problème était juste Apache sur le côté.
Donc j'espère que cela aide quelqu'un à résoudre ce problème.
Sur une nouvelle installation de PHP, supprimer
;
avantextension_dir
en php.ini.