Dukas
@Dukas
учу php

У меня проблема Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in. Как исправить?

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\php\OpenServer\domains\test.ru\handle.php on line 15
error

<?php

$connect = mysqli_connect("127.0.0.1", "root", "root", "test_bd");

if ($connect == false){
echo 'не удалось подключится';
exit();
}

$login = $_POST["login"];
$pass = $_POST["pass"];

$count = mysqli_query($connect, "SELECT * FROM users WHERE login = $login AND pass = $pass");

if (mysqli_num_rows($count) == 0)
{
echo 'error';
} else
{
echo 'welcome';
}
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 3
@none7
mysqli_query в некоторых ситуациях может возвращать true или false. Очевидно, что они не являются объектом класса mysqli_result.
Ответ написан
@Bagration
mysqli_query в случае ошибки возвращает false для запросов типа SELECT. Если мы ведем речь именно про такой скрипт, то не надо проверять mysqli_num_rows($count), надо примерно так
// сначала проверяем, что получили не ошибку, 
// и только если это не ошибка, считаем количество найденных вариантов
if ($count === false || mysqli_num_rows($count) === 0) {
    echo 'error';
} else {
   echo 'welcome';
}
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Проблема в том что ты учишь пхп по учебнику, автор которого должен гореть в аду.
И в итоге пишешь код, в котором неверная каждая строчка.

Соединяемся как написано здесь.
Пароль пишем в базу так, как написано здесь.
Проверяем логин и пароль как написано здесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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