2013-04-07 537 views
2

我想将值“006”添加到MySql行,但它显示为“6”!我的代码的任何修复?将值“001”添加到mysql数据库

$id = "006"; 

mysql_query("INSERT INTO Table (id) VALUES ($id) "); 

感谢,

+2

什么是字段类型? – 2013-04-07 21:20:46

+1

请确保字段类型是varchar(字符串) – 2013-04-07 21:23:53

+0

tinytext,而排序规则是utf8_general_ci – 2013-04-07 21:24:03

回答

0

如果id是数字列,如整数,006相同6所以没有办法明确保存因为它的完全一样6006

SELECT LPAD(id, 3, '0') as id FROM table; 
+0

所以,我将如何插入LPAD函数的值? – 2013-04-07 21:27:57

+0

假设您的“id”列当前是一个整数,您只需继续使用现在具有的相同整数“id”列。您只需将数据作为零填充字符串进行检索即可。 – 2013-04-07 21:28:29

+0

如果这是唯一的解决方案,那么我必须改变吨代码:( – 2013-04-07 21:33:07

0

你的领域:

但是如果你想要检索的整数为3位数,零填充的字符串,你可以用0的左侧使用LPAD函数来填充它需要成为VARCHAR才能按照您的愿望工作。作为替代方案运行查询时,您也可以填充前导零。

0
  1. 我想这只是不正确的值(对于int字段类型),根本无法存储。
  2. 数据库旨在存储数据,意味着数据没有任何额外的格式,可以在选择时添加。这就是这个东西一般工作的方式。

所以,我建议存储经常int和填充它与任何零的个数,你希望在选择时间

1

尽管这不是一种安全的方式:

$id = "006"; 

mysql_query("INSERT INTO Table (id) VALUES ('$id') "); 

我想你忘记了一些关于值的引号,所以把它转换为int。

+0

我将如何解决这个问题?我试过一切! – 2013-04-07 21:30:50

+0

你试过我的查询吗?我认为它解决了你的问题。 – 2013-04-07 21:33:32

0

尝试在mysql中使用查询。

ALTER TABLE table MODIFY COLUMN id INT(3) ZEROFILL;

这可能会解决你的问题。