php - PHP - 从唯一验证中排除当前电子邮件
问题描述
我在更新 CRUD 中的数据时遇到问题,因为我已经定义了电子邮件验证以检查数据库中的所有电子邮件。
我为验证电子邮件而编写的代码是:
$sql = "INSERT INTO reg (first_name, last_name, email, phone, address) VALUES (?, ?, ?, ?, ?)";
$email = mysqli_real_escape_string($conn, $_POST['email']);
$user_check_query = "SELECT * FROM reg WHERE email='$email' LIMIT 1";
$results = mysqli_query($conn, $user_check_query);
$user = mysqli_fetch_assoc($results);
if ($user['email'] === $email) {
$emailerr="Email Already Exists";
}
else{
if($stmt = mysqli_prepare($conn, $sql)){
mysqli_stmt_bind_param($stmt, "sssss", $param_fname,$param_lname, $param_email,$param_phone, $param_address);
$param_fname = $first_name;
$param_lname = $last_name;
$param_email = $email;
$param_phone = $phone;
$param_address = $address;
if(mysqli_stmt_execute($stmt)){
header("location:index.php");
exit();
} else{
echo "Something went wrong. Please try again later.";
}
}
mysqli_stmt_close($stmt);
}
我只是根据“ID”从数据库中获取数据,但是当我点击更新时,它会检查当前的 Email 。我只是为了检查数据库中的其他电子邮件,不包括当前电子邮件。
解决方案
你确定这种方法有效吗?如果你只是想检查电子邮件是否存在,你可以使用 count. 如果 count > 0 则 email 已经存在,不需要
if ($user['email'] === $email) {
$emailerr="Email Already Exists";
}
您已经在 SQL 查询中检查过电子邮件,无需再次检查。希望这可以帮助
推荐阅读
- excel - 根据另一个单元格的开头替换特定的单元格值
- java - axios、Spring boot 和 base64 的问题
- python - 如何使用阿里巴巴ODPS python SDK中的Schema.from_lists方法创建模式?
- javascript - 如何更新 Dropzone VueJs 组件上的 prop 选项值?
- c# - Azure 活动目录 C#
- c - C - 通过命令行将输入和输出文本文件传递给我的程序
- google-app-engine - 来自 JSON 的 gcloud auth activate-service-account 设置当前项目
- python - 如何在给定的python文件路径中返回错误行?
- angular - 如何避免在 Angular 中暴露内部组件
- c# - 如何关闭打开的视图,不管它是否是活动视图?(Revit 2017、2018、2019)