2009-10-27 9 views
5

यदि मैं आईएनटी (12) बनाम आईएनटी (10) या आईएनटी (8) का उपयोग करता हूं तो कोड में उपयोग करने के मामले में यह वास्तव में क्या करेगा?आईएनटी (10) और आईएनटी (12) के बीच क्या अंतर है (मेरे कोड पर लागू होने पर)?

(यह previous question का एक स्पिन बंद है) मैं मैनुअल के माध्यम से पढ़ता हूं और मुझे लगता है कि मैं समझता हूं कि वे क्या कह रहे हैं, लेकिन मुझे नहीं पता कि यह मेरे PHP/mysql कोडिंग पर कैसे लागू होगा।

क्या कोई इस बात का एक उदाहरण प्रदान कर सकता है कि यह वास्तव में कहां मायने रखता है?

उत्तर

6

संक्षिप्त उत्तर: कोई फर्क नहीं पड़ता।

प्रदर्शन चौड़ाई "मेटा डेटा" में वापस पारित की जाती है। इसका उपयोग करने के लिए आवेदन पर निर्भर है। आम तौर पर इसे सिर्फ अनदेखा किया जाता है। मुझे नहीं लगता कि आप इसे mysql फ़ंक्शंस का उपयोग करके प्राप्त कर सकते हैं, लेकिन आप mysqli_fetch_field_direct का उपयोग कर mysqli के साथ सक्षम हो सकते हैं।

+0

का उपयोग करने के लिए यह अधिक लचीला है, इसलिए, जब मैं बिगिनट() में जोड़ता हूं, तो मुझे क्या करना चाहिए, कुछ भी विकल्प नहीं है, है ना? एक यादृच्छिक संख्या उठाओ? 42? – Citizen

+0

आपको कोष्ठक की भी आवश्यकता नहीं है; आप बस 'बिगिन' कह सकते हैं। –

+2

आपके लिए एक मुफ्त इंटरनेट, महोदय! – Citizen

4

आपको कुछ भी बदलने की ज़रूरत नहीं है क्योंकि इसका डेटा वापस लौटने पर कोई प्रभाव नहीं पड़ता है। जानकारी का उपयोग उन अनुप्रयोगों द्वारा किया जा सकता है जो इसका उपयोग करना चाहते हैं।

देखें http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

एक और विस्तार MySQL के द्वारा समर्थित है वैकल्पिक प्रकार के लिए आधार कीवर्ड निम्नलिखित कोष्ठक में पूर्णांक डेटा प्रकार के प्रदर्शन चौड़ाई निर्दिष्ट करने के लिए (उदाहरण के लिए, INT (4))। यह वैकल्पिक डिस्प्ले चौड़ाई अनुप्रयोगों द्वारा पूर्णांक मान प्रदर्शित करने के लिए उपयोग की जा सकती है, जिसमें कॉलम के लिए निर्दिष्ट चौड़ाई से चौड़ाई कम होती है, जिससे उन्हें स्पेस के साथ बाएं-पैडिंग किया जाता है। (जो है, इस चौड़ाई मेटाडाटा परिणाम सेट के साथ लौटे में मौजूद है। चाहे वह या इस्तेमाल किया जाता है आवेदन करने के लिए नहीं।)

प्रदर्शन चौड़ाई मूल्यों कि हो सकता है की सीमा विवश नहीं करता कॉलम में संग्रहीत, न ही अंकों की संख्या जो कॉलम के लिए निर्दिष्ट चौड़ाई वाले मानों के लिए प्रदर्शित होती हैं। उदाहरण के लिए, SMALLINT (3) के रूप में निर्दिष्ट कॉलम की सामान्य SMALLINT रेंज -32768 से 32767 है, और तीन वर्णों द्वारा अनुमत सीमा के बाहर मान तीन से अधिक वर्णों का उपयोग करके प्रदर्शित होते हैं।

(जोर मेरा)

16

तर्क MySQL में प्रकार पूर्णांक आंकड़ों के भंडारण या प्रत्येक डेटा प्रकार के द्वारा समर्थित मानों की श्रेणी पर कोई प्रभाव नहीं है।

तर्क केवल प्रदर्शन चौड़ाई पर लागू होता है, जिसका प्रयोग अनुप्रयोगों द्वारा जोनाथन फिंगलैंड के उल्लेख के रूप में किया जा सकता है। यह भी आता है जब ZEROFILL विकल्प के साथ संयोजन में उपयोग किया:

CREATE TABLE foo (
    i INT(3) ZEROFILL, 
    j INT(6) ZEROFILL, 
    k INT(11) ZEROFILL 
); 
INSERT INTO foo (i, j, k) VALUES (123, 456, 789); 
SELECT * FROM foo; 

+------+--------+-------------+ 
| i | j  | k   | 
+------+--------+-------------+ 
| 123 | 000456 | 00000000789 | 
+------+--------+-------------+ 

देखें कैसे ZEROFILL डेटा पूर्णांक प्रकार तर्क के बराबर अंक की कम से कम संख्या के लिए शून्य गद्देदार है सुनिश्चित करता है।

ZEROFILL के बिना, डेटा अंतरिक्ष-गद्देदार है, लेकिन चूंकि रिक्त स्थान अक्सर छंटनी की जाती हैं, इसलिए उस अंतर को देखना कठिन होता है।

आपके PHP कोड पर इसका क्या असर पड़ता है? कोई नहीं। यदि आपको कॉलमर डेटा, या स्पेस-पैड या शून्य-पैड मानों को आउटपुट करने की आवश्यकता है, तो sprintf(),

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