2015-10-04 39 views
1

所以基本上,如果我試圖插入一個值,如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

回答

1

我想通了,如果你想將十進制數增加與準備好的語句的數據庫,你必須使用「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