Php 网站中重复用户的注册约束
我创建了下面的sql语句,以检查数据库中是否已经存在用户,如果已经存在,则阻止其注册。然而,我做了一些错误的事情,因为现在每一个注册都被拒绝,即使不是重复的用户Php 网站中重复用户的注册约束,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我创建了下面的sql语句,以检查数据库中是否已经存在用户,如果已经存在,则阻止其注册。然而,我做了一些错误的事情,因为现在每一个注册都被拒绝,即使不是重复的用户 $res = mysqli_query($mysqli, "SELECT * FROM Users WHERE Email = '{$_POST['email']}' OR Fullname = '{$_POST['fullname']}'"); if (count($res) > 0) { echo "<sc
$res = mysqli_query($mysqli, "SELECT * FROM Users WHERE Email = '{$_POST['email']}' OR Fullname = '{$_POST['fullname']}'");
if (count($res) > 0) {
echo "<script type=\"text/javascript\">window.alert('User already exists!');window.location.href = '/Register.php';</script>";
exit;
}
$res=mysqli\u query($mysqli,“从Email='{$\u POST['Email']}'或Fullname='{$\u POST['Fullname']}'的用户中选择*);
如果(计数($res)>0{
echo“window.alert('用户已存在!');window.location.href='/Register.php';”;
出口
}
如果要防止重复用户,请使用约束或唯一索引(实际上是一样的):
这将防止重复数据进入数据库级别的这些字段。比尝试在应用程序级别执行此操作要安全得多。正如您在手册中所看到的 将返回一个对象 您可以使用来正确执行此操作:
$result = mysqli_query($mysqli, "SELECT * FROM Users WHERE Email = '{$_POST['email']}' OR Fullname = '{$_POST['fullname']}'");
$row_count = mysqli_num_rows($result);
if ($row_count > 0) {
//etc.
}
$result = mysqli_query($mysqli, "SELECT * FROM Users WHERE Email = '{$_POST['email']}' OR Fullname = '{$_POST['fullname']}'");
$row_count = mysqli_num_rows($result);
if ($row_count > 0) {
//etc.
}