【问题标题】:MongoDB database errorsMongoDB数据库错误
【发布时间】:2017-05-08 12:08:16
【问题描述】:

我目前正在使用远程 ubuntu 16 服务器。我已经在上面安装了 Apache2、PHP 7 和 MongoDB。一切都很好地单独工作,但是,当我尝试使用 PHP 程序连接 MongoDB 时,我收到与数据库和集合创建有关的错误。我想要的只是连接到 MongoDB 并在其中创建一个数据库和集合。我搜索了解决方案,但找不到任何解决方案。

<?php
    $m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
    echo "connected to database";

    $db = $m->myTestDb;
    echo'<br/>';

    echo "database myTestDb selected";

    $collection = $db->createCollection("user");
    echo'<br/>';

    echo"Collection created successfully";
    echo'<br/>';

    $document = array(
        "id"=>"012123123123121",
        "firstname"=>"john",
        "middlename"=>'steve',
        "lastname"=>"bell",
        "dateofbirth"=>"23/08/1990",
        "age"=>"27",
        "gender"=>"male",
        "aadharno"=>"789456123",
        "passportno"=>"987654321",
        "panno"=>"7539514862",
        "address"=>"london",
        "email"=>"john@gmail.com",
        "contactno"=>"7777777777",
        "username"=>"john",
        "password"=>"john",
        "joiningdate"=>"15/12/2017",
        "empid"=>"01",
        "department"=>"computer",
        "designation"=>"developer"

        );

     if($collection->insert($document))
    {
        echo "Collection Created !";
    }
    //echo"Document inserted successfully";
    echo'<br/>';

?>

这些是我遇到的错误

PHP Notice:  Undefined property: MongoDB\\Driver\\Manager::$myTestDb in 
/var/www/mongo/testmongo.php on line 5

PHP Fatal error:  Uncaught Error: Call to a member function 
createCollection() on null in /var/www/mongo/testmongo.php:10\nStack 
trace:\n#0 {main}\n  thrown in /var/www/mongo/testmongo.php on line 10

提前谢谢你!

【问题讨论】:

标签: php mongodb mongodb-query


【解决方案1】:

您正在尝试获取MongoDB\Driver\ManagermyTestDb 属性,而没有这样的属性或魔术__get 方法可以处理这种情况 - 这需要通知。我相信您希望您的代码看起来更像(请注意,我正在实例化不同的类)

$client = new \MongoDB\Client("mongodb://localhost:27017");
$db = $client->myTestDb;

您可以参考"Using the PHP Library" 了解有关如何与驱动程序和库进行交互的更多详细信息。

【讨论】:

  • 我试过了,但这不起作用。 myTestDb 是我要创建的数据库名称
  • 它给了我一个错误,找不到类 MongoDB\\Client。
  • 是的,我做了并更改了我的代码,但我无法放入 autoload.php 文件,因此代码无法正常工作。另外,我没有使用作曲家。我正在为我的远程服务器使用 MobaXterm
  • 我不确定这两者是如何连接的,但你要么需要库启动并运行,要么自己编写它在做什么,你可以在这里查看它的源代码:github.com/mongodb/mongo-php-library跨度>
猜你喜欢
  • 1970-01-01
  • 2013-12-10
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多