PHP+SQL注册表单无报错但无法写入数据库求助
问题排查与修复方案
兄弟,我仔细看了你的代码,发现了几个关键问题,这就是为什么表单提交后没反应、数据也没写入数据库的原因:
1. HTML表单的语法错误(最根本的触发问题)
你的<form>标签里的method属性写错了:
<form action="" method"post" class="form">
正确的写法应该是**method="post"**(少了个等号)!这个错误会导致浏览器默认用GET方法提交表单,PHP里的$_POST数组根本拿不到任何数据,所以后面的if(isset($_POST['register']))判断永远不会成立,自然不会执行任何数据库操作。
2. 数据库连接的两个小问题
- 你写的数据库密码是
" "(一个空格),如果你的MySQL root账号实际密码不是空格,连接会直接失败。 - 连接失败时,你用
mysqli_connect_errno()输出的是错误码,换成mysqli_connect_error()才能看到具体的错误描述,方便你排查连接问题。
3. 核心问题:SQL语句从未执行
你只是定义了插入的SQL语句,但完全没有调用执行方法!写完$sql之后直接就关闭了数据库连接,数据库根本没收到要插入数据的指令。必须加上执行语句的代码才能让数据库处理请求。
4. 严重安全问题:SQL注入与明文密码
- 直接把用户输入拼到SQL里是高危操作,很容易被SQL注入攻击,必须用预处理语句来规避风险。
- 明文存储密码是绝对禁止的,一定要用
password_hash()哈希后再存入数据库,验证时用password_verify()匹配。
修正后的完整代码示例
<body> <form action="" method="post" class="form"> <div class="form-group1"> <label for="">Username :</label> <input type="text" class="form-control" name="username" id="tb-username" placeholder="Username"> </div> <div class="form-group2"> <label for="">Password :</label> <input type="password" class="form-control" name="password" id="tb-password" placeholder="Password"> </div> <button type="submit" class="btn btn-primary" id="btn-submit" name="register">Submit</button> </form> <?php if(isset($_POST['register'])) { // 先验证输入是否为空 if(!empty($_POST['username']) && !empty($_POST['password'])) { $username = $_POST['username']; // 密码哈希处理 $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 数据库连接(注意修改为你的实际密码) $link = mysqli_connect("localhost", "root", "你的实际密码", "vbproject"); if(mysqli_connect_errno()) { printf("数据库连接失败: %s\n", mysqli_connect_error()); exit(); } // 使用预处理语句避免SQL注入 $sql = "INSERT INTO users (username, password) VALUES(?, ?)"; $stmt = mysqli_prepare($link, $sql); mysqli_stmt_bind_param($stmt, "ss", $username, $password); // 执行语句并给出反馈 if(mysqli_stmt_execute($stmt)) { echo "注册成功!"; } else { echo "注册失败: " . mysqli_stmt_error($stmt); } // 关闭语句和连接 mysqli_stmt_close($stmt); mysqli_close($link); } else { echo "用户名和密码不能为空!"; } } ?> </body>
内容的提问来源于stack exchange,提问作者acesteef
相关产品推荐
相关产品推荐

