我尝试创建执行以下代码的新mongo连接
$m = new MongoDB\Client();
我收到了这个错误:
致命错误:Class' MongoDB \ Client'找不到
我认为我已经正确安装了MongoDB扩展 (将php_mongodb.dll复制到ext文件夹并使用 extension = php_mongodb.dll 更新php.ini。)
以下代码确认已加载:
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
我仍然收到同样的错误。
这是 phpinfo()
感谢你的帮助。谢谢!
答案 0 :(得分:19)
如果您使用的是PHP的最新MongoDB扩展,MongoDB\Driver\Manager
是扩展程序的主要入口点。
以下是使用最新扩展程序检索数据的示例代码。
我们假设您在testColl
中收集了testDb
。您可以使用扩展名的MongoDB\Driver\Query
类来检索数据。
// Manager Class
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
// Query Class
$query = new MongoDB\Driver\Query(array('age' => 30));
// Output of the executeQuery will be object of MongoDB\Driver\Cursor class
$cursor = $manager->executeQuery('testDb.testColl', $query);
// Convert cursor to Array and print result
print_r($cursor->toArray());
输出:
Array
(
[0] => stdClass Object
(
[_id] => MongoDB\BSON\ObjectID Object
(
[oid] => 5848f1394cea9483b430d5d2
)
[name] => XXXX
[age] => 30
)
)
答案 1 :(得分:2)
我正在使用PHP 7.1.9而且我遇到了这个问题。通过删除并重新安装mongodb/mongodb
composer remove mongodb/mongodb
composer require mongodb/mongodb
此外,如果您使用的是Dreamweaver,请不要将vendor
文件夹放在服务器副本中。
安装完成后,我现在可以使用MongoDB\Client
。
mongodb API版本1.3,Mongodb Extension 1.4
答案 2 :(得分:0)
同样的事情发生在我身上,检查服务器上的php安装版本。 你必须使用php 5.6版。检查apche错误日志以获得更准确的错误细节。
答案 3 :(得分:0)
简单的安装方式
sudo apt-get install php-mongodb
安装mongo之后
答案 4 :(得分:0)
答案 5 :(得分:0)
与Apache和Nginx不同,它出现了。
尽管该帖子很旧,但我帮助这个人帮助了某人。我最近遇到了同样的问题。与我不同的是php.ini。
我一直将mongoextension放在/cli/php.ini中。
在我运行<?php phpinfo() ?>
时,我发现在我的情况下,已加载的配置位于/fpm/php.ini中。这是因为我正在使用fpm取消对Nginx的演唱。
答案 6 :(得分:0)
\MongoDB\Driver\Manager();
现在是“低级”扩展(php_mongodb),\MongoDB\Client
被重写为“PHP 类”,您需要额外安装 https://docs.mongodb.com/drivers/php/ 才能使用老式不错new \MongoDB\Client('mongodb://127.0.0.1');