为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个 PHP 函数/MySQL 数据库要四舍五入十进制值?

为什么这个 PHP 函数/MySQL 数据库要四舍五入十进制值?

PHP
湖上湖 2021-11-26 17:49:52
我正在努力处理一些 PHP 代码,该代码将商品的价格插入 MySQL 数据库。该价格被插入,但它总是被舍去。例如,如果我插入一个数字 9.99,它会在数据库中四舍五入为 9.00。我认为这是 PHP 代码的问题,因为我在 phpMyAdmin 中使用 sql 语句手动插入了数据,并且数据没有被四舍五入。我曾经item_price DECIMAL(7,2) NOT NULL创建过列,所以它应该接受小数位。我还曾经echo检查过正确的值是否从 html 表单到达 .php 文件,并显示了一个带小数点的值。我$total像这样定义变量:// Is repeated across multiple functions$price = test_input($_POST["price-2"]);$total += $price这是将信息插入数据库的代码部分:echo $total; // Returns a decimal value (eg 9.99)$sql = "INSERT INTO purchase_requests (submitted_by, request_type, summary, cost_centre, location, location_details, transport, total_price, approved, approver, paid) VALUES (?,'purchase',?,?,?,?,'false',?,'pending','pending','pending');";$stmt = mysqli_stmt_init($conn);if(!mysqli_stmt_prepare($stmt, $sql)) {  echo "SQL Error";} else {  mysqli_stmt_bind_param($stmt, "issssi", $submitter, $summary, $costCentre,  $location, $locationDetails, $total);  mysqli_stmt_execute($stmt);  mysqli_stmt_close($stmt);  mysqli_close($conn);}谁能理解为什么会发生这种情况?谢谢!
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

您告诉 PHP 将值保存为整数,使用以下代码行:

mysqli_stmt_bind_param($stmt, "issssi", $submitter, $summary, $costCentre, $location, $locationDetails, $total);

i代表“整数”。如果要插入双精度值,则必须使用d.

在您的情况下,您的线路变为:

mysqli_stmt_bind_param($stmt, "issssd", $submitter, $summary, $costCentre, $location, $locationDetails, $total);



查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信