比较PHP / MySQL中的两个电子邮件地址始终返回false

时间:2013-10-29 22:24:22

标签: php mysql pdo

我正在尝试通过唯一的邀请代码链接注册用户,该链接会根据其电子邮件地址进行检查。在注册时,我正在检查他们发布的电子邮件地址是否与我们存储在数据库中的电子邮件相匹配。一切似乎运行得很好,我已经验证了发送给检查功能的电子邮件和代码,但由于某种原因,这会不断返回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());
        }

    }

2 个答案:

答案 0 :(得分:1)

你可能想要

"SELECT `email` FROM `userlogin` WHERE `code`= ?"

您将电子邮件包装在单引号中而不是后退标记,因此您实际上是选择要与

进行比较的文本email

答案 1 :(得分:0)

也许检查它们是否属于同一数据类型?如果你有phpmyadmin尝试手动运行查询以查看它返回的内容。你可能会感到惊讶,并发现你没有预期的结果。