如何使用php搜索mysql数据库中是否已经存在元素

我有一个网站,当用户注册时,我想检查输入的email是否已用于register另一个帐户。

database: users
row: email
new email: $email_register
$result = $pdo->prepare("IF email_register = ? IN email FROM users $same = TRUE");
$result->execute(array($email_register));   
$user = $result->fetch();
if($same == TRUE)
{
echo email already used;
}
else
{
#continue registration process
}

我想要一种方法来知道email是否已经在数据库中,如果已经存在,用户将通过错误消息(error code transmitted via header)返回到注册页面。

lxyyxl001 回答:如何使用php搜索mysql数据库中是否已经存在元素

假设每个电子邮件用户的帐户不得超过一个,则一种简单的方法是使电子邮件列成为用户表中的唯一键(或主键)。这样可以防止电子邮件被多次使用。

,

尝试这种方式

// check if email is taken already
$stmt = $pdo->prepare("SELECT email FROM users WHERE email_register = :email");
$stmt->execute([
    'email_register ' => $email
]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

if (isset($user) && !empty($user)){
    // Username already taken
   echo "email already used";
}else{
   //redirect to registration process
}
,

在SQL查询中不需要IF。只需编写简单的select语句,如:

Select email from users where email = 'example@example.com';

如果查询返回并返回结果,则表明该电子邮件已经在数据库中(如果没有),则可以继续进行注册过程。

if($exist)
{
    return false; or you redirect to registration page whatever you want to do. 
}
#continue registration process
本文链接:https://www.f2er.com/3167811.html

大家都在问