我正在尝试从唯一的邀请代码链接注册用户,该链接会根据他们的电子邮件地址进行检查。在注册时,我正在运行检查,以查看他们发布的电子邮件地址是否与我们存储在数据库中的电子邮件匹配。一切似乎都运行良好,我已经验证了发送到检查功能的电子邮件和代码,但由于某种原因,这不断返回 false。我在这里错过了什么?
public function CheckEmail($email, $code, $db)
{
$query = $this->db->prepare("SELECT 'email' FROM `userlogin` WHERE `code`= ?");
$query->bindValue(1, $code, PDO::PARAM_STR);
try
{
$query->execute();
$data = $query->fetch();
$confirmEmail = $data['email'];
if($confirmEmail == $email)
{
return true;
}
else
{
return false;
}
}
catch (PDOException $e)
{
die($e->getMessage());
}
}
你可能想要
"SELECT `email` FROM `userlogin` WHERE `code`= ?"
您将电子邮件包装在单引号而不是反引号中,因此您实际上是在选择要比较的文本email
也许检查它们是否属于相同的数据类型? 另外,如果您有phpmyadmin,请尝试手动运行查询以查看它返回的内容。您可能会感到惊讶,并发现您没有达到预期的结果。