2012-04-01 9 views
10

मैं केकेपीएचपी ढांचे का उपयोग कर रहा हूं। किसी क्वेरी के परिणाम लौटने पर, फ्रेमवर्क डेटाबेस से वापस आने पर डेटा को "सरलीकृत" करने के लिए "प्रयोगात्मक" PDOStatement::getColumnMeta पर कॉल करता है। हालांकि, क्वेरी के आधार पर मिश्रित परिणाम हैं।पीडीओएसटेमेंट :: getColumnMeta नाम के बजाय मूल तालिका नाम देता है

ऐसे समय होते हैं जब डेटा की सरणी अपेक्षित होती है जहां सभी कॉलम दृश्य के नाम से जुड़े होते हैं। अन्य बार, डेटा मिश्रित आता है, जहां कुछ डेटा मूल तालिका से जुड़े सरणी में बैठता है जो दृश्य के अनुरूप होता है।

// correct 
Array(
[MyInstall] => Array 
    (
     [id] => a6d1342a-7b4d-11e1-8397-60195b7d6275 
     [user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275 
     [script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275 
     [path] => 
     [url] => 
     [created] => 2009-06-15 12:43:30 
     [version] => 3.2.1 
     [admin_url] => wp-admin 
     [name] => WordPress 
     [icon] => icon_WordPress.gif 
    ) 
) 

//incorrect 
Array(
[MyInstall] => Array 
    (
     [id] => c71a2368-7b4d-11e1-8397-60195b7d6275 
     [user_id] => dc038c9e-7b4b-11e1-8397-60195b7d6275 
     [path] => 
     [url] => 
     [created] => 2011-11-07 22:26:38 
     [version] => 3.2.1 
     [admin_url] => wp-admin 
) 

[Script] => Array 
    (
     [script_id] => 057de1e0-7b48-11e1-8397-60195b7d6275 
     [name] => WordPress 
     [icon] => icon_WordPress.gif 
) 
) 

परिणाम बनाए गए तरीके PDOStatment::getColumnMeta के परिणामों से हैं। यहाँ getColumnMeta का एक नमूना परिणाम कैसा दिखाई देता है:

Array 
(
    [native_type] => STRING 
    [pdo_type] => 2 
    [flags] => Array 
     (
      [0] => not_null 
     ) 

    [table] => MyInstall 
    [name] => id 
    [len] => 108 
    [precision] => 0 
) 

मैं MySQL के लिए पीडीओ का उपयोग कर यह वही जानकारी कैसे प्राप्त कर सकते हैं पर कोई सुझाव? या इस समस्या का कोई और समाधान है?

बीटीडब्लू: मैं पहले से ही filed a bug इस पर PHP लोगों के साथ हूं।

+0

मुझे पता चला कि यह मुद्दा दृश्य नाम के संयोजन का उपयोग करने से संबंधित है, जहां क्लॉज मुद्दे के साथ संयुक्त है। (ओपी में बग देखें)। अभी भी PHP dev से प्रतिक्रिया के लिए इंतजार कर रहा है। –

उत्तर

2

जैसा कि यह पता चला है, यह अब MySQL: http://bugs.mysql.com/bug.php?id=66794 में ज्ञात बग है, अभी भी लेखन के समय लंबित है।

+1

शायद PHP पर आपका टिकट MySQL बग ट्रैकर से लिंक होना चाहिए? – RandomSeed