2016-08-24 64 views
1

我想通过PHP连接到MongoDB。PHP和MongoDB

mongod --version 
db version v3.2.8 

然后,

php -i | grep mongo 
/etc/php/7.0/cli/conf.d/20-mongodb.ini, 
mongodb 
mongodb support => enabled 
mongodb version => 1.1.8 
mongodb stability => stable 
libmongoc version => 1.3.5 
mongodb.debug => no value => no value 

我想:

sudo pecl install mongodb 

返回

pecl/mongodb is already installed and is the same as the released version 1.1.8 
install failed 

这(安装失败位)被纠正,如果我尝试:

sudo pecl uninstall mongodb 

sudo pecl install mongodb 

我有这个PHP文件:

<?php 

echo "I am here"; 
$connection = new Mongo('localhost'); 
$db = $connection->mydb; 

$list = $db->listCollections(); 
foreach ($list as $collection) { 
    echo "$collection </br>";  
} 

echo "I am never here"; 
?> 

我看不到第二回声。

我会很感激任何想法。

谢谢。

+0

第一回波的phpinfo();并看到mongo扩展是否存在?如果没有,那么mongo没有成功安装。 –

+0

关注此问题http://stackoverflow.com/questions/11356834/mongodb-connect-using-php – Karthi

+0

@SanjayChaudhari非常感谢!确实有。有一个来自php -i的信息的mongodb部分。 – moijoune

回答

0

首先,检查@sanjay注释,然后将此连接:

$db = new MongoClient('mongodb://localhost', [ 
    'username' => 'root', 
    'password' => '', 
    'db'  => 'YOUR DB' 
]); 

希望它会为你工作。

+0

谢谢!我试过了,但我只看到第一个回声。当我从命令行登录到Mongo shell时,我不使用任何用户名/密码。所以,对于用户名和密码,我只是把''(空白)。 – moijoune

+0

我想知道,可能是一个问题,mongod是3.2.8而mongodb版本(从php -i)是1.1.8? – moijoune

+0

你使用了哪个版本? – Noman

0

我设法让它工作。多亏了这个帖子: After upgrading PHP to version 7, why can't I use the mongodb driver?

和这个职位: Using the PHP Library for MongoDB (PHPLIB)

对不起,因为它似乎很奇怪(我!),但确实:MongoClient()已经成为MongoDB的\(逐字用斜线!)客户()。

因此,我在我原来的职位的文件就变成了:

<?php 
require 'vendor/autoload.php'; 
echo "I am here"; 

$manager = new MongoDB\Client(); 

$database = $manager->mydb; 


foreach ($database->listCollections() as $databaseInfo) { 
    var_dump($databaseInfo); 
} 
echo "I managed to arrive here"; 
?> 

,我可以看到MYDB的内容,以及2个回声。供应商/ autoload.php生成

sudo composer require "mongodb/mongodb=^1.0.0" 

当我从上面的php文件的目录中运行它。可能不是最好的想法,因为我现在必须解决如何使autoload.php(以及它携带的所有内容)全局可用。但是,至少,我设法到达某个地方。

我使用:PHP 7.0.8-0ubuntu0.16.04.2(CLI)(NTS) 下:Ubuntu的16.04.1 LTS