2012-04-30 67 views
1

MongoDB的PHP庫允許我連接到這樣一個集合(from example):指定蒙戈DB和集合名稱作爲PHP變量

$m = new Mongo(); 
$db = $m->comedy; 
$collection = $db->cartoons; 

但我怎麼指定數據庫和/或集合名稱一個變量?我想要做的是這樣的:

$m = new Mongo(); 
$dbname = "comedy"; 
$collectionname = "cartoons"; 
$db = $m[$dbname]; 
$collection = $db[$collectionname]; 

我能做到這一點using the Python API,所以我覺得奇怪的是我不能用PHP來做到這一點。

更新:這是我使用上述方法時得到的錯誤,這導致我相信沒有內置的方法來使用變量名來處理MongoDB集合?

Fatal error: Cannot use object of type Mongo as array 

答:按照下面的接受的答案,這將工作:

$db = $m->$dbname; 
$collection = $db->$collectionname; 

回答

3

您可以通過一個可變的使用仍然可以得到它 - >即$m->$dbname通過http://php.net/manual/en/mongo.tutorial.php

+0

謝謝,剛編輯它。但是這並沒有解決它 - 這是我得到的錯誤:「致命錯誤:不能使用Mongo類型的對象作爲數組」 – Suman

+1

您仍然可以通過使用 - > ie $ m - > $ dbname通過http: //www.php.net/manual/en/mongo.tutorial.php – dweiss

+0

啊,那確實有用!謝謝,你能編輯/更新你的答案嗎?標記爲正確? – Suman

-1

將與合作規定在PHP中使用的「名稱」是有效的var名稱(例如,如果在「集合」名稱上使用空格,它將失敗)。