Travis Nabbefeld
Travis Nabbefeld

Reputation: 422

PDO submitting duplicate records?

My registration code works, but it submits a duplicate every time. For example, if I try to submit

Steve Smith [email protected] 123456789

It will show up in the database twice, like this

Steve Smith [email protected] 123456789

Steve Smith [email protected] 123456789

Here is my code

$failed         = "<p class='errormsg'>Registration failed!</p>";
$register       = "<p class='errormsg'>Thank you for registering $firstname $lastname</p>";
$adduser = $con->prepare("INSERT INTO basicuserinfo(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)");
$adduser->bindValue(':email', $email);
$adduser->bindValue(':password', $hash);
$adduser->bindValue(':firstname', $firstname);
$adduser->bindValue(':lastname', $lastname);
$adduser->execute();
    if(!$adduser->execute())
    {
    echo "$failed";
    }
    else
    {
    echo "$register";
    }
}

Upvotes: 1

Views: 138

Answers (1)

John Woo
John Woo

Reputation: 263713

because you are calling execute twice, remove the first exeute,

$failed         = "<p class='errormsg'>Registration failed!</p>";
$register       = "<p class='errormsg'>Thank you for registering $firstname $lastname</p>";
$adduser = $con->prepare("INSERT INTO basicuserinfo(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)");
$adduser->bindValue(':email', $email);
$adduser->bindValue(':password', $hash);
$adduser->bindValue(':firstname', $firstname);
$adduser->bindValue(':lastname', $lastname);
// $adduser->execute();    // <<== this should be removed,
                           //  the reason for duplicate records
    if(!$adduser->execute())
    {
       echo "$failed";
    }
    else
    {
       echo "$register";
    }

Upvotes: 4

Related Questions