Я тратил веб часами и пробовал разные методы, и я не могу понять, почему 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, а не просто сказать «была проблема». –
Является ли ваша колонка типом DECIMAL? –
Почему вы используете '$ item_name [$ i]' вместо '$ _POST ['item_name'] [$ i]'? Есть ли польза? –