例如,我如何告诉 phpmyadmin,MySQL 允许电话号码前的第一个 0?(不是零填充)
- 当我尝试在它前面放一个零时(在 phpmyadmin 中),它会自动删除它。
- 当我提交我的表单编号时,在编号前面指定了 0,它不会添加它。
有解决方法吗?
例如,我如何告诉 phpmyadmin,MySQL 允许电话号码前的第一个 0?(不是零填充)
有解决方法吗?
mysql 中的INT
数据类型只存储一个整数。正如您对任何编程语言中的整数数据类型所期望的那样,数据库引擎会删除所有前导零并舍入所有小数点,使其不适合存储电话号码。
如果电话号码中的位数始终相同,请改用 datatype CHAR(length)
,或者如果不使用 datatype VARCHAR(max_length)
。这些将存储输入的确切值而不是整数值。
存储前面可能有 0 的数字时,请使用VARCHAR
或CHAR
数据类型。电话号码、邮政编码、产品 SKU 是应始终使用非数字变量类型的主要示例。
使用 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。
或者,您可以将 PHONE 保留为“int”格式,并在选择它时添加前导零。
像这样:
select right('0000000000'+convert(varchar(10), PHONE), 10)
-- 如果您的电话号码多于 10 位,则进行相应调整