मैं इस क्वेरी के बराबर का उपयोग कर एक डेटाबेस से रिकॉर्ड का चयन कर रहा हूँ:Zend डीबी fetchAll(): जहां में ऑपरेटर के साथ खंड सरणी
SELECT * FROM reports WHERE user_id IN (3, 6, 22);
समारोह fetchAll() कॉल एक तर्क की एक सरणी है कि है प्रयोक्ता आईडी, और इस कॉल काम करता है ठीक:
$resultSet = $this->getDbTable()->fetchAll('user_id IN (' . implode(', ', $userIds) . ')');
हालांकि, मैं जहां खंड के लिए एक सरणी का उपयोग करने क्योंकि वहाँ शायद क्वेरी बाद में करने के लिए अन्य प्रतिबंध लागू हो जाएंगे चाहते हैं ... और मैं नहीं कर सकता मेरे जीवन के लिए इसे समझो। मैंने सोचा कि यह निम्नलिखित पर कुछ भिन्नता होगी:
$resultSet = $this->getDbTable()->fetchAll(array('user_id IN ?' => '(' . implode(', ', $userIds) . ')'));
लेकिन अभी तक कोई पासा नहीं है। क्या कोई यहां सही वाक्यविन्यास प्रदान कर सकता है?
खैर, यह fetchAll के लिए है() के बजाय जहां (के), लेकिन यह टिकट है। मैंने पहले 'user_id IN (?)' की कोशिश की थी लेकिन इसे इंपोड() से नतीजे से सीधे जोड़ दिया था, न केवल सीधे सरणी। – Cyranix