提交表单后MySQL数据表未更新:提示成功但无数据写入
问题分析与解决
核心错误:变量绑定顺序不匹配
你的SQL插入语句第一个字段是manName,但在bind_param方法里,第一个绑定的变量却是$equipType(还重复绑定了两次),导致manName字段没有获取到$_POST['manName']的正确值。如果manName是表中的必填非空字段,这种错误会导致插入操作静默失败,但你的代码没有检查执行结果,依然输出成功提示。
修正后的绑定代码:
$stmt->bind_param('sssssss', $manName, $equipType, $serNum, $locId, $version, $altNum, $rack);
补充:添加执行结果校验
不要默认插入一定成功,应该判断execute()的返回值,才能及时发现问题:
if ($stmt->execute()) { echo "Registration added successfully"; // 顺便修正拼写错误:Regitration → Registration } else { echo "Insert failed: " . $stmt->error; }
额外调试建议
- 检查
items表的字段约束,确认manName等字段是否允许为空; - 开启PHP错误提示方便调试,可在代码开头添加:
error_reporting(E_ALL); ini_set('display_errors', 1);
内容的提问来源于stack exchange,提问作者craftee
相关产品推荐
相关产品推荐

