检查是否已使用电子邮件地址

时间:2014-01-09 15:52:09

标签: php mysql registration

我在php上编写注册系统。我试图创建两个具有相同电子邮件地址的帐户。我写了一个代码,应该检查它,但它不起作用。我可以使用相同的电子邮件创建任意数量的帐户。怎么了?

$sqlemail = "SELECT count(*) FROM 'users' WHERE email = ?"; 
$result = $connection->prepare($sqlemail); 
$result->execute($email); 
$emailused = $result->fetch();

if ($emailused!=false) {
    echo 'An account with this e-mail address already exists!';
}

3 个答案:

答案 0 :(得分:3)

使email字段成为表的唯一键。然后,如果您尝试插入重复项,mysql将抛出错误。

然后,您可以处理错误,并显示您更友好的消息。您可以使用$result->errorCode()检查错误。

这也使您无需在SELECT之前制作INSERT

答案 1 :(得分:0)

你可以尝试这个,在users而不是'

中使用反引号
 $sqlemail = "SELECT count(*) FROM `users` WHERE email = ?"; 

if ($emailused>0) {
    echo 'An account with this e-mail address already exists!';
}

答案 2 :(得分:0)

即使电子邮件带有多个结果,脚本也会执行,因为您没有查杀脚本!您需要使用exit;die()来阻止他们继续进行,或者重新指导某些内容。

if ($emailused>0) {
    echo 'An account with this e-mail address already exists!';
    exit;
}