2011-01-13 9 views
5

क्या यह लाइन कानूनी PHP है?

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

यदि $ यह-> डीबी उपयोग करने के लिए डीबी नाम के साथ स्थिर है।

धन्यवाद

उत्तर

2

नहीं है, तार (और इस प्रकार अपने निरंतर) इस तरह, कोष्ठक में लिपटे किया जाना चाहिए:

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

अपने मामले में बेहतर काम हो सकता है:

$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

+0

महान! स्टैक ओवरफ्लो मुझे अनुमति देने के बाद एक समाधान के रूप में जोड़ देगा। विकल्प दो खराब शैली है। और MongoDB भयानक है! – CamelCamelCamel

0

नहीं, आप नहीं हो सकता ->() -> जहां आपके पास मोंगो है -> ($ this-> डीबी) -> $ coll ... शायद आप

012 की तलाश में थे
$this->mongo($this->db)->$collection_name->insert($document_name); 
1

$connection->db->collection बस के लिए आशुलिपि है । बोल्टक्लॉक के उत्तर के लिए +1, हालांकि, अगर आप $x->y->z शैली के साथ चिपकना चाहते हैं।

0

आप चाहते थे $this->mongo->selectDB($this->db)->$collection_name->insert($document_name)

संबंधित मुद्दे