值越来越舍入在mysql

问题描述:

所以基本上,如果我试图插入一个值,如2.22它将被插入为2.00而不是2.22。我真的不知道为什么会发生这种情况。我试着在mysql中更改列的类型,但这根本没有帮助。值越来越舍入在mysql

mysql中的列设置为Decimal(7,2)

这是我如何插入值到数据库:

$ks = new ks(); 
$value = $_POST['value']; //value from input field 
$data = $ks->getPrepare("INSERT into enties (amount) VALUES (?)"); 
$data->bind_param("i", $value); 
$data->execute(); 
+0

显示代码是因为我们必须重现您的行为http://sqlfiddle.com/#!9/4ec6d/1/0 – lad2025

+0

请张贴你如何插入来自php的值。 –

+0

'$ value = $ _POST ['value'];'你看到了什么?或者更好的尝试'$ value =(float)$ _POST ['value'];' – user5173426

我想通了,如果你想将十进制数增加与准备好的语句的数据库,你必须使用“d”(双)而不是bind_param()函数中的“i”。

实施例:

$value = "2.22"; 
$data->bind_param("i", $value); 

值添加到数据库在这种情况下将是2.00

实施例#2

$value = "2.22"; 
$data->bind_param("d", $value); 

值添加到数据库在这种情况下将是2.22

+1

我发誓我只是要发布这个,但仍然upvoted!干杯';-)' – user5173426

+0

贺谢谢人,我很高兴我完成了这个问题,它真的让我烦扰:) – Chilipepper