Проверка, если имя пользователя уже существует в подготовленной инструкции db - PullRequest
0 голосов
/ 07 апреля 2019

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

$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>';

1 Ответ

1 голос
/ 07 апреля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...