I'm trying to make this code run:
<?php $m = new MongoClient("mongodb://54.72.237.242"); $db = $m->tilbud; ?>
Everytime I got the same error:
Fatal error: Class 'MongoClient' not found in C:\xampp\htdocs\conexion.php
I've been reading about this problem the whole day but anything solves my issue (I guess it's something I'm doing wrong).
I downloaded the php_mongo.dll, I copied it in xampp/php/ext and I added extension=php_mongo.dll
in the php.ini archive.
I've added 4 more dll's because I'm not sure which one I have to use:
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
So now im getting 5 warnings instead of one. At the end I guess one of them will work and I'll delete the other 4.
Things I tried and I'm sure they are ok:
What more can I try ?
Edit
I tried
echo extension_loaded("mongo") ? "loaded\n" : "not loaded\n";
and it always says 'not loaded'.
Edit
Finally! The problem was the dll's name. It has to be 'php_mongo.dll' and I was trying to load the full name dll as I said at the begining of this post. So I changed the correct dll for me (extension=php_mongo-1.5.4-5.5-vc11
) for extension=php_mongo.dll
and voilà!
You have not installed MongoDB PHP driver please see this link http://www.php.net/manual/en/mongo.installation.php
Update 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
Install MongoDB PHP Driver
sudo apt-get install php5-dev php5-cli php-pear -y sudo pecl install mongo
Open your php.ini file and add to it:
extension=mongo.so
Restart apache
sudo /etc/init.d/apache2 restart
Other helping info:
this should help to find your php.ini file:
php -i | grep 'Configuration File'
On Ubuntu it shows this:
Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini
take a note, that you run this command from cli (command line) so for your true php.ini go to folder apache2 instead of cli :)
For those arriving on this page with PHP 7 installed:
The MongoCLient
class was provided by pecl install mongo
. But pecl/mongo
is not available for php7 and deprecated in favor of pecl/mongodb
. But with pecl/mongodb
you'll need to use MongoDB\Driver\Manager instead of MongoClient (warning on page says so too).
See here for further reading.
This said, you will need an abstraction layer on top of the PHP MongoDB\Driver\Manager
. This is provided by mongodb/mongo-php-library.
You will need to refactor stuff like:
\MongoClient
to \MongoDB\Client
\MongoCollection
to \MongoDB\Collection
\MongoClient->selectDB
to \MongoDB\Client->selectDatabase
\MongoClient->listDBs
to \MongoDB\Client->listDatabases
iterator_to_array
, along with edits to how you use the resulting object\MongoCollection->getName
to \MongoDB\Collection->getCollectionName
\MongoCollection->update
to \MongoDB\Collection->updateOne
or updateMany
\MongoCollection->remove
to \MongoDB\Collection->deleteOne
\MongoCollection->batchInsert
to \MongoDB\Collection->insertMany
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With