दिलचस्प पोस्ट
दो तिथियों के बीच का अंतर? Google साइन-इन के साथ प्रमाणीकरण 12501 त्रुटि कोल्डफ्यूज़न 10 रिटर्नस्वरूप = "JSON" वर्ण जोड़ना जावास्क्रिप्ट से XML डेटा कैसे प्राप्त करें वार्ड चेन को तोड़ो और श्रृंखला में कदम पर आधारित फ़ंक्शन को बुलाओ जहां इसे टूटा हुआ है (अस्वीकार कर दिया गया) गतिशील रूप से चमकदार पृष्ठ का उपयोग करके वेब पेज पर प्लॉट जोड़ें अहस्ताक्षरित सही Shift '>>> जावा में ऑपरेटर इकाई फ़्रेमवर्क में 'ऑब्जेक्ट कॉन्टैक्ट' बनाम 'डीबीसीओन्टेक्स' बनाम जावा बाइट सरणी में ऋणात्मक संख्याएं हैं CodeBehind से जावास्क्रिप्ट फ़ंक्शन को कॉल करना क्या सत्र की हत्या किए बिना ओरेकल में एक ही क्वेरी को मारना संभव है? पायथन जोरदार टाइप किया गया है? वालग्रेग -जी ध्वज (उबंटू 11.10 / वर्चुअलबॉक्स पर) के बावजूद लाइन नंबर नहीं दिखा रहा है AngularJS: कैसे एक jsonp अनुरोध बनाने के लिए स्टेटस बार विस्तार को रोकना

MySQL क्वेरी परिणाम उनके मूल डेटा प्रकार के रूप में प्राप्त करें?

मैंने mysql_fetch_row() और mysql_result() का उपयोग करके MySQL क्वेरी परिणाम प्राप्त करने की कोशिश की है और संख्यात्मक मान को तार के रूप में वापस किया जा रहा है।

क्या आंकड़ों को तालिका में संग्रहीत डेटाटाइप के रूप में लाने का कोई तरीका है?

आवेदन कई अलग-अलग प्रश्नों के लिए पूछताछ करेगा, इसलिए मैं 1 से 1 आधार पर मूल डेटाटिप के रूप में मूल्यों को डालने में असमर्थ रहूंगा।

Solutions Collecting From Web of "MySQL क्वेरी परिणाम उनके मूल डेटा प्रकार के रूप में प्राप्त करें?"

मुझे लगता है कि डेटा अपने मूल आंकड़ों में नहीं मिल रहा है (यानी कुछ भी जो स्ट्रिंग्स) PHP 5.2 में किया जा सकता है …

PHP 5.3 में, यह संभव हो जाता है, अगर मैं सही ढंग से याद रखता हूं, जब आप नया (PHP के रूप में नया> = 5.3) mysqlnd (MySQL देशी चालक) ड्राइवर का उपयोग कर रहे हैं।

मेरे बुकमार्क्स के माध्यम से अधिक खुदाई करने के बाद मैंने यह लेख mysqlnd के बारे में पाया: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3

यह कहता है (उद्धरण):

पीडीओ के लिए mysqlnd का उपयोग करने के लाभ

mysqlnd मूल डेटा प्रकार देता है जब सर्वर-साइड तैयार वक्तव्य का उपयोग करते हैं, उदाहरण के लिए एक INT स्तंभ एक पूर्णांक चर के रूप में लौटा जाता है जो स्ट्रिंग के रूप में नहीं होता है। इसका अर्थ आंतरिक रूप से कम डेटा रूपांतरण होता है

लेकिन यह केवल PHP 5.3 है (आपका PHP 5.3 का संस्करण प्रदान करता है mysqlnd ( और पुराने libmysql नहीं) के साथ संकलित किया गया है , और केवल तैयार बयान के लिए मामला है 🙁

जो आपकी स्थिति में काफी मदद नहीं करता है, मुझे लगता है …

और यहाँ एक और है, अभी भी mysqlnd की नई सुविधाओं के बारे में, जो न केवल तैयार बयान के लिए इस बारे में बात करता है: PHP: mysqlnd के साथ नए नेटवर्क यातायात, सीपीयू और स्मृति बचत

सुनिश्चित नहीं है कि यह आधिकारिक mysqlnd ड्राइवर में मिला दिया गया है, हालांकि – सबसे अच्छा तरीका कोशिश करना होगा; लेकिन अभी भी PHP> = 5.3 केवल, वैसे भी …

डीबी से पीएचपी डेटाटाइप से आने वाले परिणामों को परिवर्तित करने के लिए एक अन्य समाधान, PHP- पक्ष पर, किसी मानचित्रण-प्रणाली (जैसे एक ORM) की तरह होगा

और हाँ, यह बुरा है यदि आप ऑपरेटर्स जैसे === और !== , जो कि प्रकार के प्रति संवेदनशील हैं, का उपयोग करना चाहते हैं …

मैंने इसे मैनुअल तरीके से कार्यान्वित किया है यह वास्तव में बहुत बुरा नहीं है, सिर्फ कुछ लाइनें

जैसा कि सुझाव दिया गया है, mysqli_fetch_fields () को अपनी क्वेरी से उत्पन्न संसाधन पर कॉल करें

फिर PHP फ़ील्ड प्रकार संख्याओं के मानचित्रण से MySQL डेटा प्रकारों पर (यहां मेहनती काम देखें http://www.php.net/manual/en/mysqli-result.fetch-field-direct.php ) आप अपने मूल्यों को परिवर्तित कर सकते हैं MySQLi द्वारा स्ट्रिंग के रूप में लौट आए डेटाबेस प्रकारों की विस्तृत श्रृंखला से, PHP में उपयुक्त प्रकार में

कितना मंदी यह है मुझे यकीन है कि यद्यपि नहीं है।

पीडीओ के बजाय mysqli का उपयोग करने पर यह प्रयास करें

 $mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1); 

मैंने इसे सर्कवेट करने के लिए एक फ़ंक्शन लिखी (पीडीओ के लिए):

 /** * Converts columns from strings to types according to * PDOStatement::columnMeta * * @param PDOStatement $st * @param array $assoc returned by PDOStatement::fetch with PDO::FETCH_ASSOC * @return copy of $assoc with matching type fields */ function convertTypes(PDOStatement $statement, $assoc) { for ($i = 0; $columnMeta = $statement->getColumnMeta($i); $i++) { $type = $columnMeta['native_type']; switch($type) { case 'DECIMAL': case 'TINY': case 'SHORT': case 'LONG': case 'LONGLONG': case 'INT24': $assoc[$columnMeta['name']] = (int) $assoc[$columnMeta['name']]; break; case 'DATETIME': case 'DATE': case 'TIMESTAMP': $assoc[$columnMeta['name']] = strtotime($assoc[$columnMeta['name']]); break; // default: keep as string } } return $assoc; } 

बेशक प्रकार की सूची पूरी नहीं हुई है और रूपांतरण को बड़ा किया गया है, लेकिन शुरुआत के लिए उपयोगी हो सकता है।

पास्कल मार्टिन उत्तर के अलावा, यदि आप MySQLi का उपयोग करते हैं तो यह भी काम करना चाहिए। इसे इस्तेमाल करे:

 <?php $mysqli = new mysqli("example.com", "user", "password", "database"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") || !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) { echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error; } $stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1"); $stmt->execute(); $res = $stmt->get_result(); $row = $res->fetch_assoc(); printf("id = %s (%s)\n", $row['id'], gettype($row['id'])); printf("label = %s (%s)\n", $row['label'], gettype($row['label'])); ?> 

उपरोक्त उदाहरण उत्पादन होगा:

 id = 1 (integer) label = a (string) 

आप यहां अधिक जानकारी पा सकते हैं: https://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.quickstart.prepared-statements.html

उम्मीद है की यह मदद करेगा