2012-04-30 47 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名称(例如,如果在“集合”名称上使用空格,它将失败)。