2017-09-03 43 views
-1

在我的數據庫中有一個名爲設置的表。它有兩列,分別是namevalue設置表中的varchar字段中的前導零位

我試圖插入一個電話號碼,例如0612345678

它不斷移除前導零(結果612345678)。

我使用$value = strval($value);來確保PHP將值作爲字符串傳遞(我可以確認,工作)。

這是MySQL的默認設置還是我可以解決這個問題?

+0

整數值不能以'value' 0 –

+1

數據類型開始呢?顯示你的「CREATE TABLE」命令。 –

+0

如果它的varchar,它應該是字符串,並且不會刪除任何前導零。你說你確認從PHP它的正確價值?你能展示你如何插入它? – Qirel

回答

0

如果你想保持前導零,你需要將值存儲在一個字符串列中(現在我認爲這是一個整數現在在PHP或MySQL中)。

另一種選擇是增加的數量的同時選擇(不推薦)

SELECT LPAD(Column, <lengthOfOriginalNumber>, '0') 
+1

colums是'varchar' ...所以它是一個字符串列... – LinkinTED

0

它看起來像要麼phpMySQL被轉換的電話號碼爲number,因此,前導零被剝離。

  • 如果是php那麼你可以使用strval函數來獲取字符串值(解釋here)。此外,您可以嘗試打印該值,然後將其發送到MySQL以查看轉換後的結果。

  • 如果是MySQL那麼你需要改變列類型爲varchar,例如:

    ALTER TABLE table MODIFY phone_number VARCHAR(20);

+0

這兩個轉換已經存在。 OP已經提到有問題 –

+1

謝謝你的回答,但是,我用'strval',看問題。我使用一個varchar列,看標題。 – LinkinTED

+0

@LinkinTED在這種情況下,您可以嘗試在轉換後在控制檯中打印'$ value',以查看新值是什麼? –