我在我的函数中使用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;
}
答案 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,则会给您错误。