Php 将十进制数存储到MySQL数据库中
下面是AJAX的返回,它显示了我试图存储到数据库中的值: 以下是实际存储到数据库中的内容(58.00是我存储的内容): 以下是表格的结构: 以下是PHP:Php 将十进制数存储到MySQL数据库中,php,jquery,mysql,ajax,phpmyadmin,Php,Jquery,Mysql,Ajax,Phpmyadmin,下面是AJAX的返回,它显示了我试图存储到数据库中的值: 以下是实际存储到数据库中的内容(58.00是我存储的内容): 以下是表格的结构: 以下是PHP: $req = $bdd->prepare("INSERT INTO salon_histo(reference, designation, colour, size, type, price, qty, payment, date) VALUES(:reference, :designation, :colour, :size,
$req = $bdd->prepare("INSERT INTO salon_histo(reference, designation, colour, size, type, price, qty, payment, date) VALUES(:reference, :designation, :colour, :size, :type, :price, :qty, :payment, NOW())");
$req->execute(array(
'reference' => $_POST['reference'],
'designation' => $_POST['designation'],
'colour' => $_POST['colour'],
'size' => $_POST['size'],
'type' => $_POST['type'],
'price' => floatval($price[0]),
'qty' => $_POST['soldQty'],
'payment' => $_POST['payment']
));
$req->closeCursor();
echo json_encode($price[0]);
当我试图存储58,33时,MySQL如何存储0处有2位小数的数据?我尝试在PHP中使用floatval,结果数字变成了58 Price似乎是一个数组:
'price' => floatval($price[0]),
小数部分可能有键1
'price' => (float) ($price[0] . '.' . $price[1]),
如果这不起作用,请var\u dump($price)
并将结果粘贴给我
要检查的另一件事是PHP是否使用逗号格式化这些数字。Price似乎是一个数组:
'price' => floatval($price[0]),
小数部分可能有键1
'price' => (float) ($price[0] . '.' . $price[1]),
如果这不起作用,请var\u dump($price)
并将结果粘贴给我
要检查的另一件事是PHP是否用逗号格式化这些数字。请不要使用屏幕截图。复制粘贴文本数据和标记为代码或引号。对于MySQL,可能重复的数字通常格式为
XX.XX
,而不是XX,XX
。在将数字插入MySQL之前,请将其从逗号转换为句点。我猜您的价格是EU格式的x,xx
而不是PHP/MySQL/任何十进制格式x.xx
,因此当您floatval()
it时,它会删除逗号后面的所有内容(包括逗号);你可能想看看这个类,或者你的问题是“逗号”。Mysql使用句点作为小数点分隔符。请不要使用屏幕截图。复制粘贴文本数据和标记为代码或引号。对于MySQL,可能重复的数字通常格式为XX.XX
,而不是XX,XX
。在将数字插入MySQL之前,请将其从逗号转换为句点。我猜您的价格是EU格式的x,xx
而不是PHP/MySQL/任何十进制格式x.xx
,因此当您floatval()
it时,它会删除逗号后面的所有内容(包括逗号);你可能想看看这个类,或者你的问题是“逗号”。Mysql使用句号作为小数点分隔符。问题确实是昏迷。我用str_replace将“,”替换为“.”。数据被正确地存储。谢谢你的帮助。屏幕截图,因为我无法显示数据是如何存储到数据库中的。没有问题,请将此标记为正确答案。问题确实是昏迷。我用str_replace将“,”替换为“.”。数据被正确地存储。谢谢你的帮助。屏幕截图,因为我无法显示数据是如何存储到数据库中的。没有问题,请将此标记为正确答案?