ycwong99 Ответов: 1

Сообщение об ошибке mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result


<pre><?php

session_start();
$con= mysqli_connect("localhost","root","","phplogin1");
$email = $_POST['email'];
$password = $_POST['password'];
$sql="SELECT * FROM 'accounts' where email='$email' and password ='$password'";

$result=mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);


if ($row)
{
    
    header("location:home.php");
   $_SESSION['email'] = $_POST['email'];
   $_SESSION['loggedin'] = TRUE;
}
 else {
echo"Invalid";
//header ("refresh:2;url=login.php");
}
?>


Что я уже пробовал:

It is a very simple login page to for my application. I will develop the secure version later on. I having the error mysqli_fetch_array() expects parameter 1 to be mysqli_result when the user enter the correct email and password. The database will have the column username,password,email,image,address

1 Ответов

Рейтинг:
1

Sandeep Mewara

Цитата:
mysqli_num_rows() ожидает,что параметр 1 будет находиться в mysqli_result, bool задан в

Согласно документации PHP: mysql_query - руководство пользователя[^] - при сбое оператора запроса вызов возвращает логическое значение FALSE.
Это означает, что ваш запрос возвращает FALSE, и вы ожидаете другого типа и имеете код, основанный на нем.
$row = mysqli_fetch_array($result);

Выше fetch query не будет принимать false в качестве входного параметра (который, по-видимому, является значением $result). Вы должны действовать, основываясь на значении $result. Нравится:
$rows = mysqli_num_rows($query);
if($rows == 1){
    // login found
}
else
{
    // no user
}

ОПЕРАЦИОННАЯ
if($row){
            // login found
        }
    } else{
  // no user
}


Взгляните на это, чтобы попытаться узнать: Как создать простую форму входа в PHP &mysqli Tutorial ~ Softaox[^]
Простая регистрация пользователя и скрипт входа в систему на PHP и MySQLi | все трюки PHP[^]