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