Search code examples
phpmysqleasyphp

Duplicate table entry error


So I am just getting started with PHP/MySQL, and I have been having an issue when running the following code that attempts to insert data into a table. The error is being caused because I have the username column set to be unique and the username "TEST" has already been used. Is there a way that I could write an if statement to catch only the error that occurs when a duplicate entry is created?

    $sql = "INSERT INTO users (username, password, email)
            VALUES ('$_SESSION[username]', '$_SESSION[password]', '$_SESSION[email]')";
    if ($con->query($sql) === TRUE) {
        echo "New record created successfully";}
    else {echo "Error: " . $sql . "<br>" . $con->error;}

The error I'm getting is:

Error: INSERT INTO users (username, password, email) VALUES ('TEST', 'password', 'example@gmail.com') Duplicate entry 'TEST' for key 'username'


Solution

  • You can try to use INSERT IGNORE INTO users ... your query .... It will not create an error and after query you should check the value of $con->affected_rows - if it is equal to 0 then there was a duplicate (insert statement was failed and ignored).

    Check it, I may be not correct, but as far as I remember, it should work.