10位数的移动设备在mysql中没有数据有什么问题?

Pee*_*ush 2 mysql phpmyadmin

我制作了一张表,用于存储我网站用户的联系记录.它还包含一个10位数的手机号码.

表结构如下:

CREATE TABLE contact_user
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
contact INT(10)
)
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果我使用phpmyadmin将10个移动号码(例如9595891256)插入到联系人字段中,它将插入一些随机值并显示警告说"数据超出列范围"

但是,如果我插入一个简单的10位数字(例如4561327894),那么它运行良好,不会显示任何警告.

请告诉我在此栏中插入手机号码有什么问题?

我在ubuntu 11.04上使用mysql 5.1,也使用phpmyadmin.

Jus*_*ᚄᚒᚔ 7

INT(10)不是指10位数字,它表示显示宽度为10位的整数.无论你是INT(2)还是INT(10),MySQL仍然只存储一个(无符号,在这种情况下)INT,其最大值为4294967295.

您可以使用BIGINT而不是INT将其存储为数字.但是,我不建议这样做,因为它不允许国际号码.如果您确定您的应用程序将只使用美国数字,那么使用BIGINT将在VARCHAR(10)上每行节省3个字节 - 如果您担心这种情况.

由于它是电话号码(因此您不会对其进行数值计算),请尝试使用VARCHAR(20).这使您能够在需要时正确存储国际电话号码.