Sql语句可以防止重复项添加到网站的数据库中

时间:2014-03-23 15:17:29

标签: php mysqli

我已创建此代码以便在我的数据库中注册用户。我无法做到的是防止一次又一次地添加同一个用户。这是我的代码:

connectDB();
$safe_fullname = mysqli_real_escape_string($mysqli,$_POST['fullname']);
$safe_email = mysqli_real_escape_string($mysqli,$_POST['email']);
$safe_password = mysqli_real_escape_string($mysqli,$_POST['pass']);
$addStatement="Insert into Users (Fullname,Email,Password,Is_Admin) values ('".$safe_fullname."','".$safe_email."','".$safe_password."','N')";
$result = mysqli_query($mysqli,$addStatement) or die(mysqli_error($mysqli));

1 个答案:

答案 0 :(得分:1)

为您的表添加唯一性(如果它是唯一的)电子邮件或用户名列:

ALTER TABLE Users ADD UNIQUE (Email);

OR

ALTER TABLE Users ADD UNIQUE (Username);

这样,数据库只接受一个具有相同电子邮件地址或用户名的记录。

执行此操作的其他方法是从DB中选择具有给定详细信息的值。例如,让我们使用电子邮件列:

$res = mysqli_query($mysqli, "SELECT Email FROM Users WHERE Email = '{$_POST['email']}'");
if(count($res) > 0) {
   //exists => do stuff
} else {
   //doesn't exist => do stuff
}