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

HTML表单提交后PHP服务未接收数据也未写入MySQL是什么原因?

错误原因及修复方案

1. 核心问题:HTML表单action地址配置错误

你当前表单的action属性取值为action="localhost/test.php",缺少HTTP协议前缀,浏览器会将其识别为相对路径而非绝对HTTP地址:

  • 若你直接在本地打开HTML文件(地址栏为file:///开头的本地路径),浏览器会将提交地址解析为file://localhost/test.php,根本不会请求你部署在本地的PHP HTTP服务,后端收不到任何请求自然不会写入数据库
  • 若你的HTML托管在本地HTTP服务下,该地址会被解析为当前页面路径/localhost/test.php,同样无法指向正确的PHP接口

修复方案:将form标签的action属性改为正确的接口地址:

  • 用绝对路径写法:action="http://localhost/test.php",如果你的本地服务用了非80端口,还要加上对应端口,比如8080端口就写http://localhost:8080/test.php
  • 如果HTML和PHP文件在同个HTTP服务的同层级目录下,直接用相对路径即可:action="test.php"

2. 补充:PHP代码逻辑问题(对应你直接访问接口插入NULL的现象)

你的PHP代码中if(isset($_POST['theme']) && isset($_POST['year']))的大括号仅包裹了变量赋值逻辑,后续数据库操作无论判断是否成立都会执行:

  • 直接GET访问PHP接口时,$_POST中无对应参数,判断不成立,$theme和$year为未定义变量,绑定参数时会被当作NULL处理,就会插入全空记录
  • 如果需要仅当参数存在时才执行数据库操作,需要把所有数据库相关代码都包裹在if的大括号内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 01:06:04