एक क्रेडिट कार्ड नंबर गणितीय अर्थ में "संख्या" नहीं है, यह केवल अंकों की एक स्ट्रिंग होता है। आपको कभी भी यह पूछने की आवश्यकता नहीं है कि "यह कार्ड नंबर प्लस वन क्या है?" या "...गुना दो?", लेकिन आप शायद पूछना चाहें "इस कार्ड संख्या के पहले चार अंक क्या हैं?" या "आखिरी चार...?"
यदि आप इसे एक संख्या के रूप में मानते हैं, तो यह आपके द्वारा सामान्य रूप से काम करने वाली संख्या से बहुत बड़ी संख्या होगी:44443333322221111 (एक वीज़ा परीक्षण कार्ड संख्या) "4 क्वाड्रिलियन 444 ट्रिलियन 333 बिलियन 322 मिलियन 221 हजार 1 सौ 11" है।पी>
महत्वपूर्ण रूप से, सबसे बड़ी संख्या जो एक हस्ताक्षरित 32-बिट पूर्णांक में संग्रहीत की जा सकती है - जो आपको SQL में "int" निर्दिष्ट करने पर मिलती है - केवल 2 बिलियन से अधिक है, इसलिए कार्ड नंबर फिटिंग के करीब नहीं आता है। आपका डेटाबेस या तो आपको एक त्रुटि देगा, या बस कुछ अन्य नंबर संग्रहीत करेगा जो फिट बैठता है - आपके मामले में, यह केवल उच्चतम संख्या को संग्रहीत कर रहा है।
आप अपने कॉलम को "बिगिन्ट" (64-बिट हस्ताक्षरित, अधिकतम मूल्य लगभग 9 क्विंटल) में बदल सकते हैं, लेकिन आप उन्हें अपने PHP में स्ट्रिंग्स और अपने डेटाबेस में वरचर के रूप में मानने से बेहतर हैं।