J'essaie de faire fonctionner ce code:
<?php
$m = new MongoClient("mongodb://54.72.237.242");
$db = $m->tilbud;
?>
A chaque fois, j'ai la même erreur:
Fatal error: Class 'MongoClient' not found in C:\xampp\htdocs\conexion.php
J'ai lu des articles sur ce problème toute la journée, mais rien ne résout mon problème (je suppose que c'est quelque chose que je fais mal).
J'ai téléchargé php_mongo.dll, je l'ai copié dans xampp/php/ext et j'ai ajouté extension=php_mongo.dll
dans l'archive php.ini.
J'ai ajouté 4 dll de plus parce que je ne suis pas sûr de celui que je dois utiliser:
extension=php_mongo-1.5.4-5.5-vc11-nts
extension=php_mongo-1.5.4-5.5-vc11
extension=php_mongo-1.5.4-5.5-vc11-nts-x86_64
extension=php_mongo-1.5.4-5.5-vc11-x86_64
Alors maintenant, je reçois 5 avertissements au lieu d'un. À la fin, je suppose que l’un d’entre eux fonctionnera et que je supprimerai les 4 autres.
Les choses que j'ai essayées et je suis sûr qu'elles vont bien:
Que puis-je essayer de plus?
Modifier
J'ai essayé
echo extension_loaded ("mongo")? "chargé\n": "non chargé\n";
et il dit toujours 'pas chargé'.
Modifier
Enfin, le problème était le nom de la DLL. Il doit s'agir de 'php_mongo.dll' et j'essayais de charger le nom complet dll, comme je l'ai dit au début de ce post. J'ai donc changé la dll correcte pour moi (extension=php_mongo-1.5.4-5.5-vc11
) pour extension=php_mongo.dll
et le tour est joué!
Vous n’avez pas installé le pilote MongoDB PHP, veuillez consulter ce lien http://www.php.net/manual/en/mongo.installation.php
Mettre à jour les sources
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | Sudo tee /etc/apt/sources.list.d/mongodb.list
Sudo apt-get update
Installer le pilote MongoDB PHP
Sudo apt-get install php5-dev php5-cli php-pear -y
Sudo pecl install mongo
Ouvrez votre fichier php.ini et ajoutez-y:
extension=mongo.so
Redémarrer Apache
Sudo /etc/init.d/Apache2 restart
Autres informations utiles:
cela devrait vous aider à trouver votre fichier php.ini:
php -i | grep 'Configuration File'
Sur Ubuntu, cela montre ceci:
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
notez que vous exécutez cette commande à partir de cli (ligne de commande), donc pour votre vrai php.ini, accédez au dossier Apache2 au lieu de cli :)
Pour ceux qui arrivent sur cette page avec PHP 7 installé:
La classe MongoCLient
a été fournie par pecl install mongo
. Mais pecl/mongo
n'est pas disponible pour php7 et obsolète en faveur de pecl/mongodb
. Mais avec pecl/mongodb
, vous devrez utiliser MongoDB\Driver\Manager au lieu de MongoClient (un avertissement à la page le dit aussi).
Voir ici pour en savoir plus.
Ceci dit, vous aurez besoin d’une couche d’abstraction au-dessus du PHP MongoDB\Driver\Manager
. Ceci est fourni par mongodb/mongo-php-library .
Vous aurez besoin de refactorer des choses comme:
\MongoClient
à \MongoDB\Client
\MongoCollection
à \MongoDB\Collection
\MongoClient->selectDB
à \MongoDB\Client->selectDatabase
\MongoClient->listDBs
à \MongoDB\Client->listDatabases
iterator_to_array
, ainsi que les modifications apportées à la manière dont vous utilisez l'objet obtenu.\MongoCollection->getName
à \MongoDB\Collection->getCollectionName
\MongoCollection->update
à \MongoDB\Collection->updateOne
ou updateMany
\MongoCollection->remove
à \MongoDB\Collection->deleteOne
\MongoCollection->batchInsert
à \MongoDB\Collection->insertMany
La réponse est en effet de suivre les instructions . Il me manquait le très important require line qui doit précéder la création du nouvel objet mongodb:
<?php
require 'vendor/autoload.php';
$client = new MongoDB\Client("mongodb://localhost:27017");
Et bien sûr, vous devez exécuter cette commande à la racine de votre projet conformément aux instructions:
composer require mongodb/mongodb
Obtenir la même erreur et maintenant c'est résolu.
J'utilise Linux Mint. Pour résoudre ce problème, j'ai ajouté extension=mongo.so
dans deux répertoires:
installer le pilote, j'ai par exemple php5.6:
Sudo apt-get install php5.6-mongo
De this page:
Remarque: dépendances supplémentaires DLL pour les utilisateurs Windows:
Pour que cette extension fonctionne, il existe des fichiers DLL qui doivent être disponibles pour le système Windows PATH.
votre version php et la version du fichier dll doivent être identiques Vérifiez si les versions ne sont pas identiques puis mettez à jour votre php xampp en fonction de la version dll disponible.