3

MongoDBのPHPライブラリを使用すると、次のようなコレクションに接続できます(例から)。

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

しかし、データベースやコレクション名を変数として指定するにはどうすればよいですか?私がやりたいのは次のようなものです。

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

Python APIを使用してこれを実行できるので、PHPを使用して実行できないのは不思議です。

更新:これは、上記のメソッドを使用したときに発生するエラーです。これにより、変数名を使用してMongoDBコレクションに対処する組み込みの方法がないと思いますか?

Fatal error: Cannot use object of type Mongo as array

回答:以下の受け入れられた回答に従って、これは機能します:

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

3 に答える 3

3

-> を使用して変数で取得することもできます。つまり、 http://php.net/manual/en/mongo.tutorial.php$m->$dbnameを介して

于 2012-04-30T21:44:52.233 に答える
-1

これは、使用される「名前」が PHP で有効な var 名であるという条件で機能します (たとえば、「コレクション」名にスペースを使用すると失敗します)。

于 2013-02-15T12:24:44.923 に答える