为什么我的pdo语句结果总是返回true?

时间:2014-04-17 16:39:06

标签: php pdo

我正在将一个旧的登录脚本从mysql_query转换为pdo,我有点挣扎

我想要做的就是找出数据库中是否存在电子邮件!

我的代码

public function doesEmailExist($userEmail)
{

    $db = new PDO('mysql:host=localhost;dbname=servershop', 'user', 'pass');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $db->prepare("SELECT COUNT(`uid`) FROM `user` WHERE `email`= ?");
    $stmt->bindValue(1, $userEmail);

    try
    {

        $stmt->execute();
        $rows = $stmt->fetchColumn();

        if($rows == 1)
        {
            return true;
        }
        else
        {
            return false;
        }

    }
    catch (PDOException $e)
    {
        die($e->getMessage());
    }
}

无论表中是否存在电子邮件,代码始终返回true?

有没有一种简单的方法可以像sql中的count_rows那样执行此操作?

1 个答案:

答案 0 :(得分:1)

改变这个:

$rows = (int) $stmt->fetchColumn();

它应该有用。