我制作了一个表来存储我网站用户的联系记录。它还包含一个 10 位数字的手机号码。
表结构是这样的:
CREATE TABLE contact_user
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
contact INT(10)
)
现在的问题是,如果我使用 phpmyadmin 在联系人字段中插入 10 个手机号码(例如 9595891256),它将插入一些随机值并显示警告“数据超出列范围”
但是,如果我插入一个简单的 10 位数字(例如 4561327894),那么它会正常工作并且不会显示任何警告。
所以请告诉我在此栏中插入手机号码有什么问题?
我在 ubuntu 11.04 上使用 mysql 5.1,还使用 phpmyadmin。
INT(10)并不是指10位数字,而是指显示宽度为10位的整数。无论您输入 INT(2) 还是 INT(10),MySQL 仍然只存储一个(在本例中为无符号)INT,其最大值为 4294967295。
您可以使用 BIGINT 而不是 INT 将其存储为数字。但是,我不建议这样做,因为它不允许国际号码。如果您确定您的应用程序将只使用美国数字,那么使用 BIGINT 将比 VARCHAR(10) 每行节省 3 个字节——如果您担心这种情况。
由于它是一个电话号码(因此您不会对其进行数值计算),请尝试使用 VARCHAR(20)。这使您能够在需要时正确存储国际电话号码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)