我正在尝试运行此代码:
<?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中,并在php.ini存档中添加了extension=php_mongo.dll
。
我已经添加了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”)? “loaded \ n”:“not loaded \ n”;
它总是说'没有加载'。
修改
最后!
问题是dll的名字。它必须是'php_mongo.dll',我试图加载全名dll正如我在这篇文章的开头所说的那样。所以我为extension=php_mongo-1.5.4-5.5-vc11
改变了我的正确dll(extension=php_mongo.dll
)并vo!
答案 0 :(得分:38)
您尚未安装MongoDB PHP驱动程序,请参阅此链接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:)
答案 1 :(得分:26)
对于那些安装了PHP 7的人来到这个页面:
MongoCLient
课程由pecl install mongo
提供。
但pecl/mongo
不适用于php7,不赞成使用pecl/mongodb
。但是使用pecl/mongodb
,您需要使用MongoDB\Driver\Manager代替MongoClient(页面上的警告也是如此)。
有关详细信息,请参阅here。
这就是说,你需要一个PHP MongoDB\Driver\Manager
之上的抽象层。这由mongodb/mongo-php-library提供。
您需要重构以下内容:
\MongoClient
至\MongoDB\Client
\MongoCollection
至\MongoDB\Collection
\MongoClient->selectDB
至\MongoDB\Client->selectDatabase
\MongoClient->listDBs
至\MongoDB\Client->listDatabases
iterator_to_array
,以及对如何使用结果对象的编辑\MongoCollection->getName
至\MongoDB\Collection->getCollectionName
\MongoCollection->update
至\MongoDB\Collection->updateOne
或updateMany
\MongoCollection->remove
至\MongoDB\Collection->deleteOne
\MongoCollection->batchInsert
至\MongoDB\Collection->insertMany
答案 2 :(得分:3)
得到同样的错误,现在已经解决了。
我正在使用Linux Mint。为了解决这个问题,我在两个目录中添加了extension=mongo.so
:
答案 3 :(得分:3)
安装驱动程序,我有例如php5.6:
sudo apt-get install php5.6-mongo
答案 4 :(得分:3)
答案确实是按照说明进行的。 我错过了在创建新的mongodb对象之前必须出现的非常重要的 require 行:
<?php
require 'vendor/autoload.php';
$client = new MongoDB\Client("mongodb://localhost:27017");
当然,您需要按照说明在项目的根目录中运行此命令:
composer require mongodb/mongodb
答案 5 :(得分:2)
答案 6 :(得分:0)
你的php版本和dll文件版本应该相同,如果版本不相同则检查它,然后根据可用的dll版本更新你的xampp php。