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

PHP表单提交数据到MySQL数据库报bind_param错误问题求助

错误原因

  • 预处理SQL语法错误:INSERT语句中表名后括号内应填写数据表的字段名,不能直接填入用户提交的变量值,你当前写法会把用户输入的内容直接当做字段名解析,必然报错。
  • bind_param参数数量不匹配:你指定的类型字符串sssssi对应6个参数(5个字符串+1个数字),但实际只传入了5个变量,漏了手机号$puhelinnumero参数。
  • 表单radio项缺失value属性:三个性别单选框没有设置value,提交后sukupuoli字段只会收到on字符串,无法区分用户选择的性别。

修正方案

1. 修改index.php中性别单选框部分代码

<div class="lomake-block">
    <label for="male">Mies</label>
    <input type="radio" id="male" name="sukupuoli" value="mies">
</div>
<div class="lomake-block">
    <label for="female">Nainen</label>
    <input type="radio" id="female" name="sukupuoli" value="nainen">
</div>
<div class="lomake-block">
    <label for="other">Muu</label>
    <input type="radio" id="other" name="sukupuoli" value="muu">
</div>

2. 替换connection.php全部代码

<?php
// 拦截非POST请求,避免直接访问报错
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    die('非法访问');
}

// 接收参数并增加判空处理
$etunimi = $_POST["etunimi"] ?? '';
$sukunimi = $_POST["sukunimi"] ?? '';
$sukupuoli = $_POST['sukupuoli'] ?? '';
$sähköposti = $_POST['sähköposti'] ?? '';
// 密码做哈希处理,禁止明文存储,不需要可直接改为$_POST['salasana'] ?? ''
$salasana = password_hash($_POST['salasana'] ?? '', PASSWORD_DEFAULT);
$puhelinnumero = intval($_POST['puhelinnumero'] ?? 0);

$servername = "localhost";
$username = "root";
$password = '';
$database = 'palvelu';

$conn = new mysqli($servername, $username, $password, $database);
// 设置字符集避免乱码
$conn->set_charset('utf8mb4');

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// 预处理SQL填写数据表字段名而非用户输入变量
$stmt = $conn->prepare("INSERT INTO lomake(etunimi, sukunimi, sukupuoli, sähköposti, salasana, puhelinnumero) VALUES(?, ?, ?, ?, ?, ?)");
// 补全缺失的手机号参数
$stmt->bind_param("sssssi", $etunimi, $sukunimi, $sukupuoli, $sähköposti, $salasana, $puhelinnumero);

if ($stmt->execute()) {
    echo "onnistui jea";
} else {
    echo "执行失败:" . $stmt->error;
}

$stmt->close();
$conn->close();
?>

可选优化

如果手机号包含前导零、+号等特殊字符,建议把bind_param里的i改成s,同时将数据库puhelinnumero字段改为varchar类型,避免数字转换丢失内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:57:00