2009-06-21 11 views
7

का चयन मैं कोडZend स्तंभों का उपयोग नहीं, और सब कुछ

$result = $handle->select()->from('store_details') 
           ->where('store_details.store_id=?', $id) 
           ->columns('store_details.store_name'); 
           //->query(ZEND_DB::FETCH_OBJ); 

हालांकि निम्नलिखित है, जब मैं इसे चलाने, पूरी पंक्ति चयन किया जाता है, न सिर्फ स्तंभ मैं चाहता था। यहां __toString

SELECT `store_details`.*, `store_details`.`store_name` 
FROM `store_details` WHERE (store_details.store_id=8) 

कोई आउटपुट आउटपुट है?

उत्तर

10

columns() विधि से या में शामिल होने एक मौजूदा को कॉलम जोड़ने के लिए है। आपकी क्वेरी के निर्माण के लिए सही तरीका है:

$result = $handle->select()->from('store_details','store_details.store_name')->where('store_details.store_id=?', $id); 

आप, कॉलम आप विधि से() के बाद दूसरे स्थान पैरामीटर के रूप में चाहते हैं निर्दिष्ट करने की आवश्यकता एक स्ट्रिंग के रूप में अगर यह सिर्फ एक स्तंभ है, या के लिए एक सरणी के रूप में एकाधिक कॉलम Zend_Db_Select docs से:

() विधि से की दूसरा तर्क में, आप संबंधित तालिका से चयन करने के लिए कॉलम निर्दिष्ट कर सकते हैं। यदि आप कोई कॉलम निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट "*" है, "सभी कॉलम" के लिए SQL वाइल्डकार्ड।

आप करने के लिए स्तंभ उर्फ ​​के साहचर्य मानचित्रण के रूप में स्तंभ नाम, तार का एक सरल सरणी में स्तंभों की सूची या कर सकते हैं। यदि आपके पास केवल क्वेरी पर एक कॉलम है, और आपको कॉलम उपनाम निर्दिष्ट करने की आवश्यकता नहीं है, तो आप इसे किसी सरणी के बजाय सादा स्ट्रिंग के रूप में सूचीबद्ध कर सकते हैं।

+0

यह जानना अच्छा है (!) [प्रलेखन] (http://framework.zend.com/apidoc/1.9/Zend_Db/Select/Zend_Db_Select.html#columns) _adding_ कॉलम के बारे में हिस्सा का उल्लेख नहीं करता है : "खंड से उपयोग किए गए कॉलम निर्दिष्ट करता है।" – WoodrowShigeru

4

आप पहले से ही चयन वस्तु (जिसका अर्थ from() से पहले कहा जाता था) है, तो आप $select->reset(Zend_Db_Select::COLUMNS); का उपयोग करना चाहिए और उसके बाद columns() फोन के रूप में आप उदाहरण में करते हैं।

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