我的注册码有效,但每次都重复提交。例如,如果我尝试提交
史蒂夫·史密斯 stevesmith@gmail.com 123456789
它会在数据库中出现两次,像这样
史蒂夫·史密斯 stevesmith@gmail.com 123456789
史蒂夫·史密斯 stevesmith@gmail.com 123456789
这是我的代码
$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";
}
}
最佳答案
因为你调用了两次execute
,删除第一个execute
,
$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";
}
关于php - PDO 提交重复记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15328301/