我已创建此代码以便在我的数据库中注册用户。我无法做到的是防止一次又一次地添加同一个用户。这是我的代码:
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));
答案 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
}