我想检查电子邮件是否已经在数据库中,但我不使用此代码。
我正在使用此代码来检查名称:
$checkDB = "SELECT user_name FROM users WHERE user_name='$name'";
$result = mysqli_query($conn, $checkDB);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if (mysqli_num_rows($result) == 1) {
$errorName = 'Това име е заето';
$mainError = true;
}
您应该做的是在数据库中为唯一的用户名和电子邮件地址设置约束。然后,尝试执行插入并在失败时捕获异常。否则,可能会出现几乎同时的用户尝试同时注册的情况,并且在 SELECT 和 INSERT 语句之间,用户名或电子邮件地址可能被其他人使用。
ALTER TABLE users ADD UNIQUE INDEX email (email);
或者你可以先用SQL检查两者:
$sql = mysqli_query($conn, "SELECT * FROM users WHERE user_name='$name' OR email='$email' LIMIT 1");
if(mysqli_num_rows($sql)>=1){
$errorName = "Username or email already exist.";
$mainError = true;
}
我认为它会起作用
$w=mysqli_query($con,"select * from users where user_name='$name'");
$num=mysqli_num_rows($w);
if($num>=1)
{
echo "Record Already Exists";
}
else
{
echo "No Record";
}