2010-09-07 11 views
10

एक MySQL क्वेरी से ऑब्जेक्ट्स लौटने के लिए mysql_fetch_object() का उपयोग करते समय, कभी-कभी कॉलम नामों में रिक्त स्थान होते हैं, और इन्हें SHOW CREATE PROCEDURE चलाते समय उपनाम नहीं किया जा सकता है। प्रक्रिया परिभाषा Create Procedure नामक कॉलम में वापस कर दी गई है। मेरे मामले में, डेटा एब्स्ट्रक्शन लेयर केवल mysql_fetch_object() के उपयोग की अनुमति देता है, इसलिए मैं इस समस्या को हल करने के लिए बस mysql_fetch_assoc() का उपयोग नहीं कर सकता।mysql_fetch_object के माध्यम से आप उनमें से किसी स्थान के साथ कॉलम तक कैसे पहुंच सकते हैं?

क्या मैं mysql_fetch_object() का उपयोग करते समय रिक्त स्थान के साथ कॉलम एक्सेस कर सकता हूं?

उत्तर

4

मुझे क्रैक करने में थोड़ी देर लग गई, इसलिए मैंने सोचा कि मैं इसे यहां पोस्ट करूंगा, इसलिए त्वरित उत्तर। :)

// Internally, this db abstraction layer uses mysql_fetch_object(). 
$query = $db->query('SHOW CREATE PROCEDURE `%s`', 'test'); 
foreach ($query as $row) { 
    $procedure = $row->{'Create Procedure'}; 
} 

मुझे नहीं पता कि यह एक PHP संस्करण के लिए विशिष्ट है, लेकिन यह कम से कम विंडोज पर PHP 5.3.1 के तहत काम करता है।

17

सामान्य शब्दों में,

$recordname->{"my column name"} 

चाल करेंगे।

आप ऑब्जेक्ट में स्तंभों का प्रतिनिधित्व करने के तरीके को जानने के लिए print_r($record); भी कर सकते हैं।

+0

मेरे लिए काम किया - सही। –

-2

उद्धरण का उपयोग करें। उदाहरण: "रिक्त स्थान के साथ नाम"

+0

यह एक बहुत ही वर्णनात्मक उत्तर नहीं है, यह। '$ obj = (ऑब्जेक्ट) सरणी (' रिक्त स्थान के साथ नाम '=>' परीक्षण '); echo $ obj -> "रिक्त स्थान के साथ नाम"; ' काम नहीं करता है, आपको घुंघराले ब्रेसिज़ की जरूरत है। – Drarok

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

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