You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新增记录时SQL decimal字段存null:如何存储小数格式输入?

问题描述

新增数据库记录时,paid字段始终存储为null值,其他字段均可正常工作。

相关代码

SQL字段定义

`paid` decimal(10,2) DEFAULT NULL

PHP接收代码

'paid' => $request->input('paidammount')

HTML输入框

<input type="number" name="paidammount" pattern="[0-9]+([\.,][0-9]+)?" step="0.01">
修复方案
  • 确认请求参数是否正常传递:在PHP代码中添加var_dump($request->input('paidammount'));调试语句,查看该参数是否存在或为空;同时打开浏览器开发者工具的Network面板,检查表单提交的Form Data,确认paidammount是否正确携带了用户输入的值。
  • 统一小数点格式:HTML输入框允许用户输入.或,作为小数点,但MySQL的decimal类型仅识别.作为分隔符,需在PHP中转换后再存储:
    'paid' => str_replace(',', '.', $request->input('paidammount'))
    
  • 匹配数据类型:将字符串类型的输入值转换为浮点型,确保和数据库decimal字段类型兼容:
    'paid' => (float)str_replace(',', '.', $request->input('paidammount'))
    
  • 排查前端提交异常:检查输入框是否被设置为disabled或readonly属性,同时确认没有JavaScript代码在表单提交时清空该字段的值。

内容的提问来源于stack exchange,提问作者Niski93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:22:12