2014-02-21 100 views
0

我有一個從服務器提取數據的PHP文件,它被正確解析,反正不正確的值在mysql中插入

這是一個簡單的數據:

"headerTotalValue":"2,338,848.0000000000" , "headerTotalVolume":"279,000.0000000000" 
在我的腳本

現在值正確顯示的是,但每當我在我的數據庫插入他們只專賣店爲2279,但我希望他們爲2,338,848279,000

列是Value INT(12)Volume INT(12)

任何想法有什麼錯在這裏發生。

回答

1

1.首先你發佈Floting點值,但數據庫列INT

2.Second您使用逗號東西(,)其CHAR這樣可以儘量避免昏迷或DB

+1

請勿將'VARCHAR'用於浮點數的整數。將整數存儲爲整數,漂浮爲浮點數。讓輸出和格式例程在應用程序中處理。 DB沒有與他們做任何事情。它應該只以適當的方式存儲數據(即數據類型,數據屬於邏輯) –

+0

@AlmaDo好點,這意味着我需要做類似於PHP中的類型轉換? –

+2

是的,在應用程序中轉換您的數據並將其正確存儲在數據庫中。這將爲您節省大量時間 –

0

你的列定義使用VARCHAR應該使用像decimal(17, 10)而不是int(12)

閱讀here從更多的信息。

1

您不能使用','和'。'在INT字段中。 整數不能帶浮點數,只能是整數。

重新格式化您的數據,如2338848279000,並使用INT。 如果您需要逗號後的數字,請將您的字段更改爲DOUBLE,並使用2338848.0279000.0之類的數字。

有關數據類型的擴展閱讀:

編輯: 瑪尼有評論,這裏的直接鏈接到的浮點部分MySQL手冊:https://dev.mysql.com/doc/refman/5.5/en/floating-point-types.html