我需要存储从0开始的电话号码,但每当我尝试将其存储在MySql表中时,会删除起始ZERO,因为实际上没有数字以零开头。
如何解决这个问题?我是否需要将字段类型从Integer更改为其他类型?
答案 0 :(得分:19)
将数据类型更改为 unsigned-zerofill 无论您使用什么,float,int,decimal(6,2)...仅将字段编辑为 unsigned-zerofill
答案 1 :(得分:6)
电话号码不是真正的数字,因为它们不是序数。他们只是人物 - 事实上他们是数字是偶然的。
将它们存储在varchar中并继续:D
答案 2 :(得分:5)
电话号码可以包含其他符号以便于阅读......电话号码的正则表达式类似于[0-9+-()*#]+
。因此,您需要为电话号码使用文本字段,以及一些验证。
答案 3 :(得分:3)
您可以将数据类型用作varchar来解决此问题。
答案 4 :(得分:3)
电话号码不是整数,只会在尝试将它们存储为整数时出现问题,而是将它们存储为字符串。
答案 5 :(得分:1)
是 - 数字字段只存储数值,而不是那些格式(带有前导零的paddin)。你应该
将字段类型从整数更改为varchar或char(如果#的数字始终相同)。
根据需要将数字存储为整数BUT,然后在表示层中添加0。
答案 6 :(得分:-1)
您还可以使用函数将前导零所需的数字换行。如果“字符串”小于2位(用于将前导零添加到小时和分钟),我使此函数添加前导零
function leadZero($num) {
if (strlen($num) < 2) {
return "0" . $num;
} else {
return $num;
}
}
如果您说要输出的数字2为02,则需要执行leadZero(2);
如果数字小于2位数,这只会加零!例如leadZero(14);将返回14