SQL-запрос всегда возвращает 1 независимо от результата

#php #mysql #phpmyadmin

Вопрос:

Я создаю функцию в PHP для подсчета количества одинаковых писем в моей таблице SQL, однако функция возвращает 1 независимо от результата. Вот мой PHP-код:

 $query = Query($conn, "SELECT COUNT(*) FROM `users` AS total WHERE `email` = '$email");
return $query->fetch();
 

Я запустил функцию в phpmyadmin, и она возвращает правильное количество, но в PHP это не удается.
Примечание:
У меня есть еще одна функция, которая почти такая же, и она работает эффективно:

 $query = Query($conn, "SELECT COUNT(*) as total
    FROM `passwords` WHERE `password` = '$pwd'");
return $query->fetch();
 

Комментарии:

1. Если вы получаете результаты второго запроса, это означает, что вы не хэшируете пароли, как следовало бы.

2. Вы уверены $email , что все настроено правильно?

3. $электронная почта настроена правильно, вот полный код

4. функция GetEmailCount($conn, $email) { $query = Запрос($conn, «ВЫБЕРИТЕ КОЛИЧЕСТВО(*) как общее users , ОТКУДА email = ‘$email'»); возврат $query->fetch(); }

5. На что ты смотришь $row['total'] ?

Ответ №1:

Вам нужно использовать fetch_assoc() , нет fetch() , и извлечь total столбец из результата.

 $query = Query($conn, "SELECT COUNT(*) FROM `users` AS total WHERE `email` = '$email");
return $query->fetch_assoc()['total'];