मैंने इस सवाल को स्टैक ओवरफ्लो पर कुछ बार दोहराया लेकिन किसी ने भी समस्या का पर्याप्त रूप से पता नहीं लगाया (या कम से कम एक तरह से जो मददगार है)
समस्या यह है कि एक DB क्वेरी को पूर्णांक कॉलम के लिए PHP में पूर्णांक डेटा प्रकार वापस करना चाहिए। इसके बजाय क्वेरी प्रत्येक स्तंभ को स्ट्रिंग प्रकार के रूप में लौटाती है।
मैंने यह सुनिश्चित किया है कि "PDO :: ATTR_STRINGIFY_FETCHES" यदि केवल यह सुनिश्चित करने के लिए कि परिणाम सुनिश्चित करने के लिए गलत नहीं हैं
उत्तर जो मैंने देखे हैं:
- यह नहीं किया जा सकता है
- नहींं, यह मैक ओएस एक्स स्थापित PHP / MySQL पर काम कर रहा है
- अपने कोड में अपने सभी मान टाइप करें
- नहीं, मैं ऐसा नहीं करूंगा
- इसके बारे में चिंता न करें, PHP शिथिल टाइप की है
- मेरा डेटा JSON के रूप में आउटपुट है और कई अन्य सेवाओं द्वारा उपभोग किया जाता है, कुछ को सही प्रारूप में डेटा की आवश्यकता होती है
अपने शोध से मैं समझता हूं कि यह एक ड्राइवर कार्यान्वयन मुद्दा है।
कई स्रोतों का दावा है कि MySQL के मूल चालक संख्यात्मक प्रकारों को वापस करने का समर्थन नहीं करते हैं। यह सच नहीं लगता क्योंकि यह मैक ओएस एक्स पर काम करता है। जब तक वे कहने का मतलब यह नहीं है कि " लिनक्स पर MySQL के मूल चालक सुविधा का समर्थन नहीं करता है"।
इसका तात्पर्य यह है कि मैक ओएस एक्स पर मैंने जो ड्राइवर / पर्यावरण स्थापित किया है, उसके बारे में कुछ विशेष है। मैं फ़िक्स को लागू करने के लिए मतभेदों को पहचानने की कोशिश कर रहा हूं, लेकिन मैं अपने ज्ञान से सीमित हूं कि इन चीजों को कैसे जांचना है।
भिन्नताएं:
- OS X पर PHP को होम ब्रू के माध्यम से संकलित और स्थापित किया गया था
- Ubuntu पर PHP के माध्यम से स्थापित किया गया था "apt-get install php5-dev"
- OS X पर PHP एक MySQL सर्वर से जुड़ रहा है जो OS X पर भी चल रहा है
- सर्वर संस्करण: 5.1.71-लॉग स्रोत वितरण
- उबंटू पर PHP एक Rackspace Cloud Database से कनेक्ट हो रही है
- सर्वर संस्करण: 5.1.66-0 + निचोड़ 1 (डेबियन)
उबटन का वातावरण
- संस्करण: 10.04.1
- PHP 5.4.21-1 + debphp.org ~ ल्यूसिड + 1 (cli) (निर्मित: 21 अक्टूबर 2013 08:14:37)
php -आई
pdo_mysql
MySQL => सक्षम क्लाइंट API संस्करण => 5.1.72 के लिए PDO ड्राइवर
मैक ओएस एक्स पर्यावरण
- 10.7.5
- PHP 5.4.16 (cli) (निर्मित: अगस्त 22 2013 09:05:58)
php -आई
pdo_mysql
MySQL के लिए PDO ड्राइवर => सक्षम क्लाइंट API संस्करण => mysqlnd 5.0.10 - 20111026 - $ Id: e707c415db32080b3752b232487a435ee0372157 $
पीडीओ झंडे का इस्तेमाल किया
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
किसी भी मदद और विशेषज्ञता की सराहना की जाएगी :) मैं निश्चित रूप से यहां वापस पोस्ट करूंगा अगर मुझे जवाब मिल जाए।