2010-05-03 9 views
11

मैं ज़ेंड डीबी चयन ऑब्जेक्ट/क्वेरी बनाने के लिए धाराप्रवाह इंटरफ़ेस का उपयोग कर रहा हूं। क्वेरी के हिस्से के रूप में, मैं एक मनमानी स्ट्रिंग का चयन करना चाहूंगा, जैसे कि "SELECT 'foo' AS 'प्रकार' FROM ..."। foo एक कॉलम नहीं है, यह केवल एक स्ट्रिंग अक्षर है।ज़ेंड डीबी के साथ मनमाने ढंग से तारों का चयन करना?

जब मैं मनमाना संख्या का चयन करता हूं, तो क्वेरी अपेक्षित कार्य करती है। जब मैंने इसे एक स्ट्रिंग को बदलने के लिए, Zend एक स्तंभ के रूप में foo के इलाज के लिए कोशिश करता है, और एक त्रुटि फेंकता है:

$select->columns(array('type' => new Zend_Db_Expr('foo'))); 

:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'l.foo' in 'field list' 

मैं जैसे विभिन्न तरीकों से Zend_Db_Expr में स्ट्रिंग लपेटकर की कोशिश की है यही कारण है कि सहसंबंध नाम जोड़ने से Zend बंद हो जाता है, लेकिन यह अभी भी एक स्तंभ के रूप में यह मान लेता है:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'foo' in 'field list' 

मुझे लगता है कि मैं यहाँ कुछ स्पष्ट याद आ रही किया जाना चाहिए। मैं ज़ेंड को कॉलम के रूप में इसका इलाज रोकने के लिए कैसे कहूं?

उत्तर

11

आप शायद का प्रयास किया था:

$select->columns(array('type' => new Zend_Db_Expr("'foo'"))); 

आप वास्तव में एसक्यूएल में 'foo' पीछे उद्धरण चिह्न के लिए और साथ ही जरूरत है।

+0

वह था। धन्यवाद! – wizzard

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