2011-01-13 28 views
5

這行是否合法PHP?

$this->mongo->($this->db)->$collection_name->insert($document_name); 

如果$ this-> db是一個帶db名稱的常量使用。

謝謝

回答

2

沒有,字符串(因此你常數)應該被包裹在括號,就像這樣:

$this->mongo->{$this->db}->$collection_name->insert($document_name); 
9

嘗試使用大括號,而不是括號:

$this->mongo->{$this->db}->$collection_name->insert($document_name); 

或者分配$this->db到一個局部變量和使用,而不是:

$db_name = $this->db; 
$this->mongo->$db_name->$collection_name->insert($document_name); 
+0

聲明:我從來沒有使用過MongoDB。 (某天...) – BoltClock 2011-01-13 18:57:25

0

不,你不能有 - >() - >你有mongo - >($ this-> db) - > $ coll ... 也許你正在尋找

$this->mongo($this->db)->$collection_name->insert($document_name); 
1

$connection->db->collection是剛剛簡寫:

$this->mongo->selectDB($this->db)->selectCollection($collection_name)->insert(...); 

這可能會在你的情況下更好地工作。如果你想堅持$x->y->z的風格,那麼BoltClock的答案也是+1。

0

你想$this->mongo->selectDB($this->db)->$collection_name->insert($document_name)

相關問題