簡體   English   中英

如果列的值不正確,mysql alter table將無法在php中工作

[英]mysql alter table won't work in php if column have incorrect values

我的桌子上有一個varchar列。 有時列數據可能為空,有時可能包含一些奇怪的字符。 所以我試圖將列的數據類型更改為十進制15,4。

所以這是我的PHP代碼

mysql_query("ALTER TABLE income CHANGE total total DECIMAL (15,4)", $db);

我運行代碼沒有任何問題(沒有錯誤),但是當我檢查表收入時,數據類型尚未更改為十進制。 但是當我直接將查詢運行到mysql中時,該列將成功更改為十進制,但是如果沒有mysql顯示一些警告,例如

  Warning Code : 1292
Truncated incorrect DECIMAL value: ''

但要點是,當我直接在mysql中運行查詢時(我正在使用sqlyog),數據類型轉換成功,但是當我嘗試在php中運行查詢時,數據類型轉換成功。 知道為什么嗎? 我該如何避免呢?

當處理更大的數字時(即,選擇LENGTH() ),當長度>65而不是> 81時不會發生截斷,

然后發出有關“截斷了不正確的DECIMAL值:”的警告,該錯誤本來已經>65

在您的情況下,您可能需要處理數字,因此長度>15

編輯:遵循您的要求,使所有值都為小數。

   UPDATE income SET total = CAST(total AS DECIMAL(15,4))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM