值越来越舍入在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();
答
我想通了,如果你想将十进制数增加与准备好的语句的数据库,你必须使用“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
显示代码是因为我们必须重现您的行为http://sqlfiddle.com/#!9/4ec6d/1/0 – lad2025
请张贴你如何插入来自php的值。 –
'$ value = $ _POST ['value'];'你看到了什么?或者更好的尝试'$ value =(float)$ _POST ['value'];' – user5173426