前0消失了吗?

时间:2013-08-16 16:46:43

标签: php mysql sql phpmyadmin

我如何告诉phpmyadmin,MySQL允许在电话号码前面的第一个0? (不是零填充)

  • 当我尝试在它前面放一个零(在phpmyadmin中)时,它会自动删除它。
  • 当我提交我的表格编号时,在编号前面指定0,它不会添加。

是否有变通方法?

4 个答案:

答案 0 :(得分:9)

mysql中的INT数据类型只存储一个整数。正如您所期望的任何编程语言中的整数数据类型一样,数据库引擎会删除任何前导零并舍入任何小数点,这使得它不适合存储电话号码。

如果电话号码中的位数始终相同,请改为使用数据类型CHAR(length),或者如果不使用数据类型VARCHAR(max_length)。这些将存储输入的确切值而不是整数值。

答案 1 :(得分:1)

存储可能前面有0的数字时,请使用VARCHARCHAR数据类型。电话号码,邮政编码,产品SKU是您应始终使用非数字变量类型的主要示例。

答案 2 :(得分:0)

或者,您可以将PHONE保留为“int”格式,并在选择时添加前导零。

像这样:

select right('0000000000'+convert(varchar(10), PHONE), 10)

- 如果您的电话号码超过10位,则相应地进行调整

答案 3 :(得分:0)

使用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。