问题数据在mysql-PHP中被截断

时间:2010-10-20 15:47:26

标签: php mysql

我有这个问题:

  

警告:#1265数据截断列

我的表单中有一个来自文本字段的值:price。

当我输入小数时:45,56(法语格式)

我的MySQL列类型是浮点数。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:4)

如果你关心精确度,你应该从不使用浮点类型作为货币。你会遇到各种奇怪的舍入和比较错误。有关详细信息,请参阅the Wikipedia page on Floating Point

DECIMAL会更好地满足您的需求 - from the MySQL documentation

  

DECIMAL和NUMERIC类型[...]用于存储保存精确精度的重要值, 例如货币数据 。“< / p>

DECIMAL(15,2)会是一个好主意,但它不会改变货币格式与存储数字相关 - 你需要将值更改为小数,然后才能将值接受到列中是一种数字数据类型。

答案 1 :(得分:3)

浮动数据必须用a保存。 “点”而不是“逗号”。 45.56

所以在将数据保存到mysql之前,请确保格式正确。

答案 2 :(得分:1)

您不应将逗号,用作小数点分隔符,而应使用点.

e.g。 45.56

您不仅会收到警告,还不会保存小数。 :)

答案 3 :(得分:0)

当你插入的值时,它会发生在mysql中特定列的指定数据类型下。

当我试图在名为date和数据类型设置为日期的列中将日期插入“2013-02-31”时,它发生在我身上。 所以2013-02-31不是有效日期,这就是它给出错误的原因。