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

使用WAMP服务器时PHP代码无法向MySQL插入数据,求排查错误

排查你的PHP插入MySQL失败问题

嘿,我仔细看了你的代码,发现几个核心问题导致数据无法存入数据库,咱们逐个解决:

主要问题分析

  • SQL语法错误:你在INSERT语句里误用了PHP的array_values()函数——这是PHP的数组处理函数,不能直接写在SQL语句中!SQL插入数据应该用VALUES关键字来指定值列表。
  • 未验证数据库连接:你只写了连接代码,但没有检查连接是否成功,万一用户名、密码或数据库名有误,你根本无法察觉。
  • 无错误反馈机制:mysqli_query执行失败时,你没有输出任何错误信息,这会让你完全不知道问题出在哪。
  • SQL注入风险:直接将用户输入的POST参数拼接到SQL语句中,存在严重的安全隐患,容易被SQL注入攻击。

修正后的完整代码

<?php
// 连接数据库并检查连接状态
$con = mysqli_connect('localhost', 'root', '', 'my_first_database');
if (!$con) {
    die("数据库连接失败: " . mysqli_connect_error());
}

if (isset($_POST['submit'])) {
    // 获取表单数据并做简单过滤
    $name = trim($_POST['name']);
    $fname = trim($_POST['fname']);
    $city = trim($_POST['city']);

    // 使用预处理语句避免SQL注入,同时保证语法正确
    $sql = "INSERT INTO student_record(Name, Fname, city) VALUES (?, ?, ?)";
    $stmt = mysqli_prepare($con, $sql);
    mysqli_stmt_bind_param($stmt, "sss", $name, $fname, $city);

    // 执行语句并反馈结果
    if (mysqli_stmt_execute($stmt)) {
        echo "数据提交成功!";
    } else {
        echo "数据提交失败: " . mysqli_error($con);
    }

    // 关闭语句和连接
    mysqli_stmt_close($stmt);
}
mysqli_close($con);
?>

<!DOCTYPE html>
<html>
<head>
    <title>数据录入</title>
</head>
<body>
    <form method="post">
        <input type="text" name="name" placeholder="姓名" required><br>
        <input type="text" name="fname" placeholder="父亲姓名" required><br>
        <input type="text" name="city" placeholder="城市" required><br>
        <input type="submit" name="submit" value="提交">
    </form>
</body>
</html>

额外注意事项

  1. 确认你的MySQL数据库中存在student_record表,且字段Name、Fname、city的拼写(注意:MySQL在Linux环境下区分表名/字段名大小写,Windows环境不区分)和数据类型与你的输入匹配。
  2. 确保WAMP的MySQL服务处于运行状态(可以在WAMP管理器中查看MySQL的状态标识)。
  3. 预处理语句里的"sss"表示三个参数都是字符串类型,如果你的字段是其他类型(比如整数),要对应修改参数类型标识(比如"sis"表示字符串、整数、字符串)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:35:40