我正在尝试运行以下代码:
<?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个。
我试过的东西,我相信他们是好的:
- extension_dir指向正确的文件夹。
- 我修改的php.ini就是xammp加载的那个。
- Phpinfo没有显示任何关于mongo的信息。
我还能尝试什么?
编辑
我尽力了
echo extension_loaded(“mongo”)?“已加载\n”:“未加载\n”;
它总是说“未装载”。
编辑
最后!问题出在dll的名称上。它必须是'php_mongo.dll',我试图加载全名dll,正如我在这篇文章的开头所说的。所以我把正确的dll(extension=php_mongo-1.5.4-5.5-vc11
)改成了extension=php_mongo.dll
!
7条答案
按热度按时间c2e8gylq1#
您尚未安装MongoDB PHP驱动程序,请参阅此链接http://www.php.net/manual/en/mongo.installation.php
更新来源
安装MongoDB PHP驱动程序
打开你的php.ini文件并添加:
重启apache
其他帮助信息:
这将有助于找到您的php.ini文件:
在Ubuntu上,它显示:
请注意,您从cli(命令行)运行此命令,因此对于真正的php.ini,请转到文件夹apache2而不是cli:)
ecfdbz9o2#
对于那些在此页面上安装了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
iq3niunx3#
答案确实是遵循指示。我错过了非常重要的require行,它必须在创建新的mongodb对象之前出现:
当然,你需要按照说明在你的项目的根目录下运行这个命令:
pbwdgjma4#
得到同样的错误,现在它已经解决了。
我使用Linux Mint。为了解决这个问题,我在两个目录中添加了
extension=mongo.so
:hgqdbh6s5#
安装驱动程序,我有例如php5.6:
00jrzges6#
从本页:
注意:Windows用户的其他DLL依赖项:
为了使此扩展工作,必须有DLL文件可用于Windows系统PATH
kadbb4597#
你的php版本和dll文件版本应该是相同的检查它如果版本不相同然后更新你的xampp php根据可用的dll版本.