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

PDO数据库连接异常:表单提交数据未入库且无报错提示

问题根因与修复方案

核心错误点

  • DSN配置缺失等号:数据库连接的DSN字符串中dbname后缺少赋值等号,实际没有指定要操作的数据库,写入操作自然无法执行。原代码写法为"mysql:host=".DB_HOST.";dbname".DB_NAME,此处dbname直接拼接了数据库名,没有加=,属于基础语法错误。
  • 重复实例化PDO且未开启错误模式:插入数据的代码中重复创建了PDO连接对象,新的对象没有配置PDO::ERRMODE_EXCEPTION错误模式,导致SQL执行出错时不会抛出异常提示,因此你看不到任何错误信息。你已经在config.php里创建过$conn连接对象,完全不需要重复创建。
  • 缺少异常捕获逻辑:插入操作没有包裹try catch块,即便开启了错误模式,执行出错时也没有输出错误信息的逻辑。

修复后的代码

数据库连接文件(config.php)

<?php
define("DB_HOST",'localhost');
define('DB_USER',"root");
define("DB_PASS","");
define("DB_NAME","test2");

try {
    // 修正dbname后缺失的等号
    $conn = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER,DB_PASS );
    $conn->setAttribute(PDO::ATTR_ERRMODE ,PDO::ERRMODE_EXCEPTION);
    // 额外设置字符集,避免中文乱码问题
    $conn->exec("set names utf8mb4");
} catch (PDOException $e) {
    die("数据库连接失败:".$e->getMessage());
}

数据插入逻辑文件

<?php
require 'config.php';

if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(isset($_POST['username']) && isset($_POST['password'])) {
        $user = trim($_POST["username"]);
        $pass = trim($_POST['password']);
        if(!empty($user) && !empty($pass)) {
            try {
                $sql = "INSERT INTO userinfo (user, pass) VALUES(:username, :password)";
                // 直接复用config.php中已创建的$conn连接,无需重复实例化
                $query = $conn->prepare($sql);
                $query->bindParam(':username', $user, PDO::PARAM_STR);
                $query->bindParam(':password', $pass, PDO::PARAM_STR);

                if($query->execute()) {
                    echo "数据插入成功";
                } else {
                    echo "数据插入失败";
                }
            } catch (PDOException $e) {
                echo "SQL执行错误:".$e->getMessage();
            }
        } else {
            echo "用户名或密码不能为空";
        }
    } else {
        echo "提交参数缺失";
    }
}

额外排查建议

  • 确认test2数据库中存在userinfo表,且表字段user、pass的字段类型、长度和你插入的内容匹配,没有其他未赋值的非空约束字段。
  • 确认root账号对test2库有写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:24:00