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更改了部件的位置,它们必须放在绑定部件之前。还要检查用户/用户名和密码。这是你敏锐的目光中的一个小小的感谢