繁体   English   中英

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

[英]Checking if e-mail address is already used

我在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!';
}

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

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

这也使您不必在INSERT之前进行SELECT

你可以试试这个,使用反引号在users'

 $sqlemail = "SELECT count(*) FROM `users` WHERE email = ?"; 

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

即使电子邮件返回了多个结果,该脚本也会执行,因为您不会杀死该脚本! 您需要使用exit; die()阻止它们继续前进,或进行重定向或其他操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM