Số thẻ tín dụng không phải là một "số" theo nghĩa toán học, nó chỉ xảy ra là một chuỗi các chữ số. Bạn không bao giờ cần phải hỏi "số thẻ này cộng với một là gì?" hoặc "... lần hai?", nhưng bạn có thể muốn hỏi "bốn chữ số đầu tiên của số thẻ này là gì?" hoặc "bốn cuối cùng ...?"
Nếu bạn coi nó là một con số, nó sẽ là một con số lớn hơn nhiều so với những gì bạn thường làm với:44443333322221111 (số thẻ xét nghiệm Visa) là "4 phần tư tỷ 444 nghìn tỷ 333 tỷ 322 triệu 221 nghìn 1 trăm 11".
Quan trọng là, số lớn nhất có thể được lưu trữ trong một số nguyên 32 bit có dấu - là những gì bạn nhận được khi chỉ định "int" trong SQL - chỉ là hơn 2 tỷ, vì vậy số thẻ không phù hợp. Cơ sở dữ liệu của bạn sẽ báo lỗi hoặc chỉ lưu trữ một số khác phù hợp - trong trường hợp của bạn, nó chỉ lưu trữ số cao nhất có thể.
Bạn có thể thay đổi cột của mình thành "bigint" (64-bit có dấu, giá trị tối đa khoảng 9 tạ triệu), nhưng tốt hơn hết bạn nên coi chúng như các chuỗi trong PHP và VarChar trong cơ sở dữ liệu của bạn.