我一直在網上拖了幾個小時,並嘗試不同的方法,我不明白爲什麼PDO不能插入其中一個值包含小數的任何行。不能插入十進制值與PDO
例如,如果輸入成本字段的值沒有小數值,那麼它工作正常。但是像小數點一樣,它只是忽略整行。
200件作品,甚至200.00件作品。但是像39.99這樣的東西不會。
下面的代碼:
$invoice_id = $db->lastInsertId('id');
$item_name = $_POST['item_name'];
$item_qty = $_POST['item_qty'];
$item_cost = $_POST['item_cost'];
$item_vat = $_POST['item_vat'];
for($i = 0; $i < count($item_name); $i++) {
$item_query = $db->prepare("INSERT INTO hm_invoice_items(invoice, item, qty, amount, vat) VALUES(:invoice, :item, :qty, :amount, :vat)");
$item_query->bindParam(":invoice", $invoice_id);
$item_query->bindParam(":item", $item_name[$i]);
$item_query->bindParam(":qty", $item_qty[$i]);
$item_query->bindParam(":amount", $item_cost[$i]);
$item_query->bindParam(":vat", $item_vat[$i]);
if (!$item_query->execute())
{
die(showMessage("There has been a problem adding the invoice items.", "Error!"));
}
}
一個的var_dump告訴我,插入查詢被接收的值,但它不喜歡處理小數。
忽略如何?你得到你的錯誤信息?你應該至少輸出mysql錯誤信息,而不是僅僅說「出現了問題」。 – 2013-02-18 17:59:52
是DECIMAL類型的列嗎? – 2013-02-18 17:59:53
爲什麼你使用'$ item_name [$ i]'而不是'$ _POST ['item_name'] [$ i]'?有沒有好處? – 2013-02-18 18:02:07