PHP表单数据无法存入MySQL,仅uniqid正常写入求助
问题排查与解决方案
1. 表单缺少提交按钮(最可能的核心原因)
你提供的表单代码里没有提交按钮,用户无法触发表单提交操作,导致$_POST数组中没有任何表单字段的数据——除了主动生成的orderID外,其他字段都被赋值为空字符串写入数据库。
解决方法:在表单末尾添加提交按钮,示例代码:
<input type="submit" value="Zatwierdź zamówienie" class="form-submit">
完整表单必须包含这类触发提交的元素,才能完成数据传递流程。
2. 开启PHP错误提示,验证数据接收状态
在PHP代码开头开启错误显示并打印$_POST数组,确认是否成功接收到表单数据:
<?php error_reporting(E_ALL); ini_set('display_errors', 1); // 打印POST数据,确认接收状态 var_dump($_POST); // 后续数据库连接与插入代码... ?>
如果var_dump($_POST)输出为空,说明表单确实未提交数据,优先解决第一步问题;如果有数据,再检查字段名匹配性。
3. 核对数据库字段与代码的一致性
- 检查MySQL的
orders表中,Imie、Nazwisko等字段名称是否与代码完全一致(注意大小写,MySQL在区分大小写的系统中会严格匹配字段名)。 - 确认这些字段是否允许空值:若字段设置为
NOT NULL,传入空字符串会触发错误,需确保表单提交有效数据,或调整字段约束。
4. 为预处理语句添加错误检查
在代码中加入错误捕获,排查数据库操作是否失败:
// 检查预处理语句是否创建成功 if (!$stmt) { die("Prepare failed: " . $conn->error); } // 检查执行是否成功 if (!$stmt->execute()) { die("Execute failed: " . $stmt->error); }
通过直接输出错误信息,可快速定位数据库层面的问题。
内容的提问来源于stack exchange,提问作者Jan Dyl
相关产品推荐
相关产品推荐

