如何使用php和mysql在数据库中查找重复的电子邮件条目?

如何使用php和mysql在数据库中查找重复的电子邮件条目?,php,mysql,web,Php,Mysql,Web,我试着用这个代码检查我的数据库中是否有电子邮件地址3次 $checkEmail = $_POST['email']; $query = "SELECT email, count(*) $checkEmail FROM participanti GROUP BY email HAVING $checkEmail = 3"; $result = mysql_query($query) or die(mysql_error()); if ($row = mysql_num_rows($result)

我试着用这个代码检查我的数据库中是否有电子邮件地址3次

$checkEmail = $_POST['email'];

$query = "SELECT email, count(*) $checkEmail FROM participanti GROUP BY email HAVING $checkEmail = 3";
$result = mysql_query($query) or die(mysql_error());
if ($row = mysql_num_rows($result)){

    if ($row[$checkEmail] == 3) {
        echo "NY";
    }
    else{
但在我的网站上说

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@mail.com FROM participanti GROUP BY email HAVING address@mail.com = 3' at line 1

问题是您给列的名称无效

您应该使用类似于
cntofemail
之类的东西

大概是

$query = "SELECT email, count(*) CntOfEmails FROM participanti GROUP BY email HAVING CntOfEmails = 3";

您非常容易受到SQL注入攻击,如果您还没有受到攻击,您将被黑客攻击。使用准备好的/参数化的查询可以完全避免此问题。您的语法错误是您在字段所在的位置粘贴了
$checkEmail
。$checkEmail是一个值,它在查询中应该有相应的列名。如何检查来自我表单的电子邮件是否已存在于我的数据库中?请编辑您的帖子,所以我们不需要水平滚动来阅读it@SlowlyDeath向我们展示数据库数据的示例和$checkEmail变量的值。谢谢:D它可以工作,但是。。。这会阻止sql注入吗?我想要一个安全的代码,因为这段代码与一个与金钱一起工作的脚本一起使用……它不会阻止SQL注入。使用参数化查询:
$query = "SELECT email, count(*) CntOfEmails FROM participanti GROUP BY email HAVING CntOfEmails = 3";