检查数据库中是否已存在记录

检查数据库中是否已存在记录

问题描述:

可能的重复:
将联系人插入数据库但不会不想复制已经存在的联系人

你好.在插入重复之前,我正在尝试检查电子邮件是否已存在.

Hello. I'm trying to check if an email already exists before I insert a duplicate.

所以我需要检查数据库中是否存在电子邮件地址,如果存在,则输出一条消息,说明它已经存在.否则我想将记录插入到数据库中.

So I need to check the database for the presence of the email address and if it exists ouput a message saying it already exists. Otherwise I want to insert the record into the database.

这是我现在用来插入电子邮件的代码,但我不确定如何检查数据库是否存在.

Here is the code I use to insert the email now, but I'm not sure how to check the database for existence.

$addEmailQuery  = sprintf("INSERT INTO `subscribe`(`Email`) VALUES('%s')",
                            mysql_real_escape_string($_POST['inputEmail']));
        $addEmailResult = mysql_query($addEmailQuery);
        if($addEmailResult){
            echo 'Email successfully submitted';

        } else{
            echo 'Sorry, we could not submit your email. Please try again.';
        }

有人知道我会怎么做吗?

Anyone know how I would do this?

最初的答案会在多用户环境中造成问题.

EDITED: The initial answer will pose problems in a multi-user environment.

你应该喜欢

INSERT ... ON DUPLICATE KEY UPDATE

按照这个答案 使其正确.

原帖:

if(mysql_num_rows(mysql_query("SELECT * FROM subscribe WHERE Email = '".mysql_real_escape_string($_POST['inputEmail'])."'")))
{
     echo "already submitted";
}   
else
{

    $addEmailQuery  = sprintf("INSERT INTO `subscribe`(`Email`) VALUES('%s')",
                        mysql_real_escape_string($_POST['inputEmail']));
    $addEmailResult = mysql_query($addEmailQuery);
    if($addEmailResult)
    {
       echo 'Email successfully submitted';

     } 
     else
     {
        echo 'Sorry, we could not submit your email. Please try again.';
     }

}