Class 'MongoDB\Client' 未找到,mongodb 已安装扩展
Class 'MongoDB\Client' not found, mongodb extension installed
我尝试创建新的 mongo 连接执行以下代码
$m = new MongoDB\Client();
我收到了这个错误:
Fatal error: Class 'MongoDB\Client' not found
我想我已经正确安装了 MongoDB 扩展
(已将 php_mongodb.dll 复制到 ext 文件夹并使用 extension=php_mongodb.dll 更新了 php.ini。
以下代码确认它已加载:
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
我仍然收到同样的错误。
这是
phpinfo()
非常感谢您的帮助。谢谢!
我也遇到了同样的情况,请检查 php 安装在您的服务器上的版本。
您必须使用 php 5.6 版。检查 apche 错误日志以获得更准确的错误详细信息。
如果您使用的是 PHP 的最新 MongoDB 扩展,MongoDB\Driver\Manager
是扩展的主要入口点。
这是使用最新扩展名检索数据的示例代码。
假设您在 testDb
中有 testColl
collection。您可以使用扩展程序的 MongoDB\Driver\Query
class 检索数据。
// 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
)
)
我使用的是 PHP 7.1.9,我遇到了这个问题。通过删除并重新安装 mongodb/mongodb
解决了这个问题
composer remove mongodb/mongodb
composer require mongodb/mongodb
此外,如果您使用的是 Dreamweaver,请不要将 vendor
文件夹放入服务器副本。
安装后,我现在可以使用MongoDB\Client
。
mongodb API 版本 1.3,Mongodb 扩展 1.4
简单的安装方式
sudo apt-get install php-mongodb
安装后 mongo
90% 的时间是您的 Mongodb 扩展配置。请检查php.ini
Apache 和 Nginx 不同。
虽然这个 post 是旧的,但我帮助这个可能会对某人有所帮助。我最近 运行 遇到了同样的问题。我不一样 php.ini.
我一直将 mongoextension 放入 /cli/php.ini.
虽然当我 运行 <?php phpinfo() ?>
我发现在我的例子中加载的配置在 /fpm/php.ini 中。这是因为我用 fpm 取消了 Nginx。
\MongoDB\Driver\Manager();
现在是“low level”扩展(php_mongodb),\MongoDB\Client
被重写为“PHP class" 并且您需要额外安装 https://docs.mongodb.com/drivers/php/ 才能使用旧式 nice new \MongoDB\Client('mongodb://127.0.0.1');
我尝试创建新的 mongo 连接执行以下代码
$m = new MongoDB\Client();
我收到了这个错误:
Fatal error: Class 'MongoDB\Client' not found
我想我已经正确安装了 MongoDB 扩展 (已将 php_mongodb.dll 复制到 ext 文件夹并使用 extension=php_mongodb.dll 更新了 php.ini。
以下代码确认它已加载:
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
我仍然收到同样的错误。
这是 phpinfo()
非常感谢您的帮助。谢谢!
我也遇到了同样的情况,请检查 php 安装在您的服务器上的版本。 您必须使用 php 5.6 版。检查 apche 错误日志以获得更准确的错误详细信息。
如果您使用的是 PHP 的最新 MongoDB 扩展,MongoDB\Driver\Manager
是扩展的主要入口点。
这是使用最新扩展名检索数据的示例代码。
假设您在 testDb
中有 testColl
collection。您可以使用扩展程序的 MongoDB\Driver\Query
class 检索数据。
// 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
)
)
我使用的是 PHP 7.1.9,我遇到了这个问题。通过删除并重新安装 mongodb/mongodb
composer remove mongodb/mongodb
composer require mongodb/mongodb
此外,如果您使用的是 Dreamweaver,请不要将 vendor
文件夹放入服务器副本。
安装后,我现在可以使用MongoDB\Client
。
mongodb API 版本 1.3,Mongodb 扩展 1.4
简单的安装方式
sudo apt-get install php-mongodb
安装后 mongo
90% 的时间是您的 Mongodb 扩展配置。请检查php.ini
Apache 和 Nginx 不同。
虽然这个 post 是旧的,但我帮助这个可能会对某人有所帮助。我最近 运行 遇到了同样的问题。我不一样 php.ini.
我一直将 mongoextension 放入 /cli/php.ini.
虽然当我 运行 <?php phpinfo() ?>
我发现在我的例子中加载的配置在 /fpm/php.ini 中。这是因为我用 fpm 取消了 Nginx。
\MongoDB\Driver\Manager();
现在是“low level”扩展(php_mongodb),\MongoDB\Client
被重写为“PHP class" 并且您需要额外安装 https://docs.mongodb.com/drivers/php/ 才能使用旧式 nice new \MongoDB\Client('mongodb://127.0.0.1');