Проверка того, существует ли имя пользователя в подготовленном операторе базы данных

Я пытаюсь проверить, существует ли опубликованное имя пользователя в моей базе данных. Я не уверен, где я ошибаюсь. Другие приведенные ниже условия работают правильно. Когда я отправляю форму, я всегда получаю «Имя пользователя занято», даже если такого имени нет в моей базе данных. Любая помощь будет принята с благодарностью. Спасибо!

$username = $_POST['username'];

 $stmt = $mysqli->prepare('SELECT COUNT(*) FROM users WHERE username = ?');

$stmt->bind_param('s', $username);

$stmt->execute();

$stmt->store_result();

 if (isset($_POST["submit"]))
 {

      if (empty($_POST["username"]))
      {
          echo '<script>alert("Username field empty")</script>';

     } else if (empty($_POST["password"])) {
          echo '<script>alert("Password field empty")</script>';

     } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          echo '<script>alert("Incorrect email format")</script>';

     } else if ($stmt->num_rows > 0) {
     echo '<script>alert("Username taken")</script>';
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
279
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

selec count(*) ... всегда возвращает 1 запись со счетчиком. Итак, когда вы проверяете else if ($stmt->num_rows > 0), он всегда возвращает true. Вы должны проверять значение, возвращаемое count, а не количество записей.

Спасибо, заработало! Не понял, что count всегда возвращает 1 запись.

Tom 07.04.2019 00:32

Если это решило вашу проблему, считайте, что пометка соответствует ответу - meta.stackexchange.com/questions/5234/…

Nigel Ren 07.04.2019 08:31

Другие вопросы по теме

Похожие вопросы

AJAX/PHP - Загрузить большой файл сегментами на чистом javascript
Как увидеть поля таблицы из внешних ключей в Laravel
JQuery/Bootstrap 4: использование window.location.hash для получения модального хэша в URL-адресе дает «#undefined»
Как я могу использовать официальный образ композитора в docker-compose?
Оптимизация базы данных MySQL для операторов select при наличии 1 млн записей: хранить старые данные отдельно?
Разбиение на страницы Laravel: почему некоторые страницы возвращают неопределенное смещение: 0?
Удалить слова, кроме выделенных слов из предложения
Попытка установить динамический заголовок данных в fancybox, но переменные с экранированными апострофами не выводят правильный формат заголовка
Mysql, как отображать значения в одной строке для каждого портфеля, акции
Нужна помощь в изменении плагина Wordpress. Мне просто нужно знать, как удалить или заменить последние 4 символа из строки PHP?