Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 网站中重复用户的注册约束_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 网站中重复用户的注册约束

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

我创建了下面的sql语句,以检查数据库中是否已经存在用户,如果已经存在,则阻止其注册。然而,我做了一些错误的事情,因为现在每一个注册都被拒绝,即使不是重复的用户

$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.
}