第一个0消失?
Posted
技术标签:
【中文标题】第一个0消失?【英文标题】:First 0 disappearing? 【发布时间】:2013-08-16 16:46:43 【问题描述】:例如,我如何告诉 phpmyadmin、mysql 允许电话号码前的第一个 0? (不是零填充)
当我尝试在它前面放一个零时(在 phpmyadmin 中),它会自动删除它。 当我提交表单编号时,在编号前面指定了 0,它不会添加它。有什么解决方法吗?
【问题讨论】:
表格中的列类型是什么? 可能您使用的是整数类型而不是字符串,或者格式已关闭。 列类型为整数 使用VARCHAR
或CHAR
而不是INT
。整数数据类型将修剪前导零,不适用于电话号码。
如何将电话号码存储在数字字段中?不。一些电话号码的长度为 12-18 位,包含重要的分机信息。
【参考方案1】:
mysql 中的INT
数据类型就是这样存储的,一个整数。正如您对任何编程语言中的整数数据类型所期望的那样,数据库引擎会删除所有前导零并舍入所有小数点,使其不适合存储电话号码。
如果电话号码中的位数始终相同,请改用数据类型CHAR(length)
,或者如果不使用数据类型VARCHAR(max_length)
。这些将存储输入的确切值而不是整数值。
【讨论】:
【参考方案2】:当存储前面可能有 0 的数字时,请使用 VARCHAR
或 CHAR
数据类型。电话号码、邮政编码、产品 SKU 是应始终使用非数字变量类型的主要示例。
【讨论】:
【参考方案3】:使用mysql时,php不要这样放你的字符串:
mysql_query("UPDATE bids SET time_off = ".$editend." WHERE id = '" . $editbid_id . "'");
您的 var 周围没有单引号(这是一个字符串编号)。这样做:
mysql_query("UPDATE bids SET time_off = '".$editend."' WHERE id = '" . $editbid_id . "'");
换句话说,请确保将其放入数据库的 var 周围有引号,否则即使您的字段是字符串值,它也会将其视为数值并删除前导 0。
【讨论】:
【参考方案4】:或者,您可以将 PHONE 保留为“int”格式,并在选择时添加前导零。
像这样:
select right('0000000000'+convert(varchar(10), PHONE), 10)
--如果您的电话号码多于10位,则相应调整
【讨论】:
以上是关于第一个0消失?的主要内容,如果未能解决你的问题,请参考以下文章
安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?