Я пытаюсь запустить этот код:
<?php $m = new MongoClient("mongodb://54.72.237.242"); $db = $m->tilbud; ?>
Каждый раз, когда я получал такую же ошибку:
Fatal error: Class 'MongoClient' not found in C:\xampp\htdocs\conexion.php
Я читал об этой проблеме целый день, но все решает мою проблему (я думаю, это то, что я делаю неправильно).
Я загрузил php_mongo.dll, я скопировал его в xampp / php / ext, и я добавил extension=php_mongo.dll
в архив php.ini.
Я добавил еще 4 dll, потому что я не уверен, какой из них мне нужно использовать:
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
Итак, теперь я получаю 5 предупреждений вместо одного. В конце я думаю, что один из них будет работать, и я удалю остальные 4.
Вещи, которые я пробовал, и я уверен, что они в порядке:
Что еще я могу попробовать?
редактировать
Я пытался
echo extension_loaded ("mongo")? msgstr "загружен \ n": "не загружен \ n";
и он всегда говорит «не загружен».
редактировать
В заключение! Проблема была в имени dll. Это должно быть «php_mongo.dll», и я пытался загрузить полное имя dll, как я сказал в начале этого сообщения. Поэтому я изменил правильную dll для меня ( extension=php_mongo-1.5.4-5.5-vc11
) для extension=php_mongo.dll
и voilà!
Вы не установили драйвер PHP MongoDB, см. Эту ссылку http://www.php.net/manual/en/mongo.installation.php
Источники обновлений
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
Установка драйвера MongoDB PHP
sudo apt-get install php5-dev php5-cli php-pear -y sudo pecl install mongo
Откройте файл php.ini и добавьте к нему:
extension=mongo.so
Перезапустить apache
sudo /etc/init.d/apache2 restart
Другая информация:
это должно помочь найти файл php.ini:
php -i | grep 'Configuration File'
На Ubuntu это показывает следующее:
Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini
обратите внимание, что вы запускаете эту команду из cli (командной строки), поэтому для вашего истинного php.ini перейдите в папку apache2 вместо cli 🙂
Для тех, кто прибыл на эту страницу с установленным PHP 7:
Класс MongoCLient
предоставлялся pecl install mongo
. Но pecl/mongo
недоступен для php7 и устарел в пользу pecl/mongodb
. Но с pecl/mongodb
вам нужно использовать MongoDB \ Driver \ Manager вместо MongoClient (предупреждение на странице тоже так говорит).
См. Здесь для дальнейшего чтения.
При этом вам потребуется слой абстракции поверх PHP MongoDB\Driver\Manager
. Это обеспечивается библиотекой mongodb / mongo-php .
Вам понадобится рефакторинг, например:
\MongoClient
to \MongoDB\Client
\MongoCollection
to \MongoDB\Collection
\MongoClient->selectDB
to \MongoDB\Client->selectDatabase
\MongoClient->listDBs
to \MongoDB\Client->listDatabases
iterator_to_array
, а также изменения в том, как вы используете результирующий объект \MongoCollection->getName
to \MongoDB\Collection->getCollectionName
\MongoCollection->update
до \MongoDB\Collection->updateOne
или updateMany
\MongoCollection->remove
в \MongoDB\Collection->deleteOne
\MongoCollection->batchInsert
to \MongoDB\Collection->insertMany
Получая ту же ошибку, и теперь она решена.
Я использую Linux Mint. Чтобы решить эту проблему, я добавил extension=mongo.so
в двух каталогах:
С этой страницы:
Примечание. Дополнительные зависимости DLL для пользователей Windows:
Чтобы это расширение работало, есть DLL-файлы, которые должны быть доступны для системы Windows PATH
Ответ действительно должен следовать инструкциям. Мне не хватало очень важной строки, которая должна появиться перед созданием нового объекта mongodb:
<?php require 'vendor/autoload.php'; $client = new MongoDB\Client("mongodb://localhost:27017");
И, конечно, вам нужно запустить эту команду в корне вашего проекта в соответствии с инструкциями:
composer require mongodb/mongodb
ваша версия php и версия dll-файла должны быть одинаковыми, если версии не совпадают, а затем обновите xampp php в соответствии с доступной версией dll.
установите драйвер, у меня есть, например, php5.6:
sudo apt-get install php5.6-mongo