2017-05-08 35 views
0

我目前正在使用远程Ubuntu 16服务器。我已经安装了Apache2,PHP 7 & MongoDB。一切都单独完成,但是,当我尝试使用PHP程序连接MongoDB时,出现与数据库和集合创建有关的错误。我只需要连接到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"=>"[email protected]", 
     "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 

预先感谢您的错误!

+0

你在php安装了mongodb驱动:http://php.net/manual/en/mongo.installation.php? –

+0

@MhhirBhende我跟着从这个教程的步骤https://tecadmin.net/setup-mongodb-php5-apache2-ubuntu/# –

+0

如果你做phpinfo(),你能看到那里的mongo驱动程序? –

回答

0

您正试图获得myTestDbMongoDB\Driver\Manager的财产,而没有这种财产或魔术__get方法将处理的情况 - 这保证了通知。我相信你想你的代码看起来更像(请注意,我实例化不同的类)

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

您可以参考"Using the PHP Library"关于如何使用驱动程序和库进行交互的更多细节。

+0

我试过这个,但是这不是工作。 myTestDb是我想要创建的数据库名称 –

+0

什么不适用于该方法? – malarzm

+0

它给我一个错误,发现类MongoDB \\ Client没有找到。 –