Class' MongoDB \ Client'没找到,mongodb扩展安装

时间:2016-12-05 10:02:00

标签: php mongodb database-connection

我尝试创建执行以下代码的新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()

感谢你的帮助。谢谢!

7 个答案:

答案 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)

90%的时间是您的Mongodb扩展配置。请检查php.ini

答案 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');