2016-08-24 46 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