php - 如果电子邮件存在返回错误,否则添加 php mysql

标签 php mysql

<分区>

我正在尝试编写执行以下操作的脚本。获取用户电子邮件并将其添加到数据库中,但是如果用户电子邮件已经存在,它会拒绝。

<?
require_once('includes/db.php'); 

$email = mysqli_real_escape_string($link, $_POST['email']); 

$dupesql = "SELECT * FROM emails where (email = '$email')";
$duperaw = mysqli_query($link, $dupesql);


if(int mysql_num_rows($duperaw) > 0){
     echo 'Error already in there';
}
else {
$sql = "INSERT INTO emails(email)
    VALUES('$email')";
$result = mysqli_query($link, $sql); 

header('Location: poll/poll.php');
}


// close mysql
mysqli_close($link);
?>

最佳答案

为什么不让mysql来处理呢?如果您已经希望 email 是唯一的,则为 email 定义一个唯一索引:

CREATE UNIQUE INDEX email_index ON emails (email)

现在您只需检查插入后是否有任何行受到影响:

if (mysqli_affected_rows()>0) {
  //success, email inserted
} else {
  // rejected
}

这样一来,您就可以省去对数据库的调用,并使代码更加简单,恕我直言。

关于php - 如果电子邮件存在返回错误,否则添加 php mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20275802/

相关文章:

PHP SimpleXML 缺少属性

php - 匹配多个单词 AND OR 在 codeigniter 模型中不起作用

mysql - 为什么 "join on or"比两个 "join on"慢得多?

MYSQL 错误#2014 : in stored procedure when resultset is empty

php - 多日期范围股票超售查询

mysql - 从两个表插入where条件

php - 如何将输入字段的值从一页获取到另一页?

php - 使用 mysqli 运行多个查询

php - 显示 MySQL 数据库中与 ID 相关的单个条目

javascript - 从基于数组的多选选项中选择一些值