Php 在MySQL中创建记录时出错:";完整性约束冲突“;
我正在尝试创建注册文件,我使用以下代码创建该文件:Php 在MySQL中创建记录时出错:";完整性约束冲突“;,php,mysql,Php,Mysql,我正在尝试创建注册文件,我使用以下代码创建该文件: <?php require 'connection.php'; if (isset($_POST['submit'])) { $res= $conn->prepare("Insert into user (Name,Email,user_name,password)Values (:name,:email,:user,md5(:pass))"); $res->bindParam(':name', $name)
<?php
require 'connection.php';
if (isset($_POST['submit'])) {
$res= $conn->prepare("Insert into user (Name,Email,user_name,password)Values (:name,:email,:user,md5(:pass))");
$res->bindParam(':name', $name);
$res->bindParam(':email', $email);
$res->bindParam(':user', $user);
$res->bindParam(':pass', $pass);
$name = $_POST['name'];
$email = $_POST['email'];
$username =$_POST['user'];
$password = $_POST['pass'];
$res->execute();
if ($res==TRUE) {
echo 'Registered successfully';
} else {
echo 'There was some error.';
}
}
?>
但我得到了这个错误:
完整性约束冲突:无法删除1048列“用户名”
空'
这是我代码的HTML部分
<body>
<form action="Registration.php" method="post" >
Name:<br>
<input type="text" name="name"/><br>
Email:<br>
<input type="text" name="email" /><br>
Username:<br>
<input type="text" name="user" /><br>
Password:<br>
<input type="password" name="pass" /><br>
<input type="submit" name="submit" value="SignUp!"/>
</form>
</body>
名称:
电子邮件:
用户名:
密码:
马克·贝克的评论是正确的,突出了核心问题。您正在将用户名绑定到变量$username,但SQL语句正在查找$user。由于未设置$user变量,因此在执行SQL语句时,该变量为null并违反数据库约束
将代码调整为
$user =$_POST['user'];
而且它应该可以工作$username!==$用户<代码>$res->bindParam(':user',$user)和
$username=$\u POST['user']
你会遇到类似的问题,$password
但它可能不会对你大喊大叫……你确实用post更改了部件的位置,它们必须放在绑定部件之前。还要检查用户/用户名和密码。这是你敏锐的目光中的一个小小的感谢