PHP页面传递个人身份码至输入框并存储MySQL故障求助
解决PHP页面传递个人身份码并保存至MySQL的问题
1. 页面间传递个人身份码
方式一:URL参数/表单POST传递
在查询页的录入按钮处,通过隐藏表单或链接携带身份码参数:
<!-- 用POST表单传递(更安全,适合敏感信息) --> <form action="add_record.php" method="post"> <input type="hidden" name="identity_code" value="<?php echo htmlspecialchars($identity_code); ?>"> <button type="submit">录入新记录</button> </form> <!-- 或GET链接传递(适合非敏感场景) --> <a href="add_record.php?code=<?php echo htmlspecialchars($identity_code); ?>">录入新记录</a>
- 用
htmlspecialchars()过滤参数,避免XSS注入风险。
方式二:Session传递(适合跨页面保持状态)
查询页获取身份码后存入Session:
<?php session_start(); // $identity_code为查询到的个人身份码 $_SESSION['identity_code'] = $identity_code; ?>
录入页读取Session:
<?php session_start(); if (!isset($_SESSION['identity_code'])) { // 未获取到身份码时跳转回查询页 header("Location: query.php"); exit; } $identity_code = $_SESSION['identity_code']; ?>
2. 录入页接收并保存至MySQL
第一步:接收传递的身份码
<?php // POST方式接收 $identity_code = isset($_POST['identity_code']) ? $_POST['identity_code'] : ''; // 或GET方式接收 // $identity_code = isset($_GET['code']) ? $_GET['code'] : ''; ?>
第二步:预处理SQL插入(防止SQL注入)
<?php // 假设已完成数据库连接,$conn为连接对象 if (!empty($identity_code)) { // 获取表单其他录入字段(示例:姓名、电话) $name = $_POST['name']; $phone = $_POST['phone']; // 预处理插入语句 $sql = "INSERT INTO your_table (identity_code, name, phone) VALUES (?, ?, ?)"; $stmt = $conn->prepare($sql); // 绑定参数,s代表字符串类型,根据字段类型调整 $stmt->bind_param("sss", $identity_code, $name, $phone); if ($stmt->execute()) { echo "记录录入成功"; } else { echo "录入失败:" . $stmt->error; } $stmt->close(); $conn->close(); } else { echo "未获取到有效个人身份码"; } ?>
3. 异常排查要点
- 用
var_dump($_POST)或var_dump($_GET)在录入页检查是否接收到身份码。 - 确认数据库表中
identity_code字段允许非空(若为必填项),且字段类型与传入值匹配。 - 打印SQL执行错误信息(
$stmt->error)定位语法或逻辑问题。
内容的提问来源于stack exchange,提问作者rmunoz
相关产品推荐
相关产品推荐

