Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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_Insert_Save - Fatal编程技术网

Php 如何检查数据库中的重复用户名?

Php 如何检查数据库中的重复用户名?,php,insert,save,Php,Insert,Save,我无法将数据保存到数据库中。我的情况是,当我将数据保存到数据库表user中时,新用户名必须与表中的exist用户名不相同 下面是我的代码,用于检查插入用户名是否与现有用户名相同如果不相同,则可以插入到表中,但我的代码不起作用,任何人都可以指导我错误的部分 拯救 输出显示如下所示: 在这个输出中,我尝试插入与表用户相同的用户名 如果删除计数,则输出如下所示: 切勿仅依靠SELECT的结果来确定记录是否唯一。另一个进程可以在选择完成和后续插入完成之间插入具有相同值的记录,然后您就得到了重复的记录。确

我无法将数据保存到数据库中。我的情况是,当我将数据保存到数据库表user中时,新用户名必须与表中的exist用户名不相同

下面是我的代码,用于检查插入用户名是否与现有用户名相同如果不相同,则可以插入到表中,但我的代码不起作用,任何人都可以指导我错误的部分

拯救

输出显示如下所示:

在这个输出中,我尝试插入与表用户相同的用户名

如果删除计数,则输出如下所示:


切勿仅依靠SELECT的结果来确定记录是否唯一。另一个进程可以在选择完成和后续插入完成之间插入具有相同值的记录,然后您就得到了重复的记录。确保数据库字段中值唯一的方法是对其使用唯一约束。实现各不相同,但在MySQL中就是一个例子

有了唯一的构造,重复的插入尝试将失败,因此需要确保检查所有数据库函数调用的返回状态


还要注意,您的代码容易受到攻击。您应该通过或使用带绑定参数的准备语句。有一些很好的例子。

您从以下查询返回了许多用户

$num_user = mysqli_num_rows($query_user);
将始终返回结果集中的行数

但在下面的声明中,

if(count($num_user) > 0) {
   echo "Duplicate username";
}
您正在使用函数。count函数返回数组中的元素数。由于$num_user不是数组,您应该得到如下错误:

if($num_user > 0) {
   echo "Duplicate username";
}
count:参数必须是实现的数组或对象 可数

您不需要使用count函数,因为$num_user已经是一个数字

只需按如下方式使用

if($num_user > 0) {
   echo "Duplicate username";
}

希望这对你有帮助

什么是$query\u setting\u company?@HasithaJayawardana已编辑。它是$num\u user删除您的计数并使用$num\u user>0only@HasithaJayawardana我已经尝试删除count,您可以在我的问题中看到。您得到的PHP错误是什么?是否使用了if$num_user>0?