Создание функции для возврата логического результата?
Я использую 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 ответ
Решение
Вы выполняете свой запрос, но не читаете его результат, вместо этого ваш прогноз чтения или не был выполнен правильно, что в вашем случае всегда верно.
Попробуй это:
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
выдаст вам результат вашего столбца count, а если выполнить не удалось или count будет равен 0, то вы получите false.