创建一个返回布尔结果的函数?

时间:2014-05-16 13:43:03

标签: php pdo

我在我的函数中使用PDO,但是代码中有问题,我希望函数应该返回boolean结果,但是当我输入错误的电子邮件时它也给了我真实的。

我的代码有什么问题?

function user_exists($email, $conn)
{
    $query = "SELECT COUNT(`UserId`) FROM users WHERE `Email` = :email";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':email', $email);
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $result = $stmt->execute();
    return ($result == 1) ? true : false;
}

1 个答案:

答案 0 :(得分:0)

您正在执行您的查询,但没有阅读其结果,而是您的阅读天气或未执行的查询,在您的情况下始终是真的。

试试这个:

function user_exists($email, $conn)
{
    $query = "SELECT COUNT(`UserId`) FROM users WHERE `Email` = :email";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':email', $email);
    $stmt->execute();
    return $stmt->fetchColumn() > 0 ? true : false;
}

fetchColumn 会为您提供计数列的结果,如果执行失败或计数为0,则会给您错误。