【问题标题】:How to use mongodb extension如何使用mongodb扩展
【发布时间】:2017-04-09 14:34:20
【问题描述】:

您好,我正在尝试使用以下代码通过 Php7 连接到 mongoDB

$connection = new MongoDB\Driver\Manager("mongodb://localhost:27017");

但出现以下错误:

[:error] [pid 6069] [client 127.0.0.1:35118] PHP 注意:未定义属性:MongoDB\Driver\Manager::$clients

$clients 是我要连接的 mongodb 数据库。 MongoDB 扩展安装并包含在 Php.ini 中,如下所示:

extension=mongodb.so

如下连接客户端数据库时

$db = $connection->clients;

我收到此错误:

"试图获取非对象的属性"

phpinfo() 还显示了已安装的驱动程序,如以下屏幕截图所示

我在 localhost 上运行 apache2 服务器。知道可能是什么问题吗??

编辑:如果我这样做var_dump($connection),我会得到以下信息:

object(MongoDB\Driver\Manager)#1 (2) { ["uri"]=> string(25) "mongodb://localhost:27017" ["cluster"]=> array(0) { } }

【问题讨论】:

  • 你试过$connection = new MongoDB\Client("mongodb://localhost:27017");
  • 在一个空的 php 文件中写入:<?php phpinfo(); ?> 并搜索 Mongo 以检查是否启用了 mongoDB 扩展
  • @callback 我现在尝试了然后我得到了这个错误
  • 未捕获的错误:找不到类 'MongoDB\\Client'
  • @Eskandari 它说“MongoDB 扩展版本 1.2.8”,如问题中包含的屏幕截图所示

标签: php mongodb


【解决方案1】:

使用Manager api进行查询的正确方法如下。它无权访问 db 对象。

http://php.net/manual/en/class.mongodb-driver-manager.php

这是一个例子

$connection = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$id           = new \MongoDB\BSON\ObjectId(SomeId);
$filter      = ['_id' => $id];

$query = new MongoDB\Driver\Query($filter);

$cursor = $connection->executeQuery('DatabaseNameHere.CollectionNameHere', $query);    

另一种查询方式是通过composer loader使用Client api。

安装:

https://docs.mongodb.com/php-library/master/tutorial/install-php-library/

教程

https://docs.mongodb.com/php-library/master/tutorial/

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 2019-01-01
    • 2019-07-01
    • 2015-09-01
    • 2016-09-05
    • 2019-11-11
    • 2021-01-05
    • 2016-08-12
    相关资源
    最近更新 更多