簡體   English   中英

在 MySQL 中創建記錄時出錯:“違反完整性約束”

[英]Error Creating record in MySQL: "Integrity constraint violation"

我正在嘗試創建一個注冊文件,並使用此代碼創建它:

<?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 列 'user_name' 不能為空'

這是我的代碼的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 變量,因此它為 null 並且在執行 SQL 語句時違反了您的數據庫約束。

將您的代碼調整為

$user =$_POST['user'];

它應該工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM