2013-04-07 220 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;

這可能會解決你的問題。