Warning: mysqli_fetch_array() expects parameter 1

2019-06-13 00:45发布

问题:

This question already has an answer here:

  • mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc… expects parameter 1 to be resource or result 32 answers

I've searched every where on here, and I cannot find the answer to my problem. My registering page works fine, but when I attempt to login I am given the following errors. I'm not entirely sure what to do:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in public_html/access/login.php on line 15

AND

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in public_html/access/login.php on line 29

Here is my code, I've italicised the lines that I'm having problems with:

<?php
        require_once($_SERVER['DOCUMENT_ROOT'] . "/html5up-aerial/access/functions.php");
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);
        if ($username&&$password) {
                session_start();
                require_once($_SERVER['DOCUMENT ROOT'] . "db_connect.php");
                mysqli_select_db($db_server, $db_database) or
                                                    die("Couldn't find db");
                $username = clean_string($db_server, $username);
                $password = clean_string($db_server, $password);

                $query = "SELECT * FROM users WHERE username='$username'";
                $result - mysqli_query($db_server, $query);
                *if($row = mysqli_fetch_array($result)){*
                   $db_username = $row['username'];
                   $db_password = $row['password'];
                   if($username==$db_username&&salt($password)==$db_password){
                      $_SESSION['username']=$username;
                      $_SESSION['logged']="logged";
                      header('Location: home.php');
                   }else{
                       $message = "<h1>Incorrect password!</h1>";
                   }
                }else{
                    $message = "<h1>That user does not exist!</h1>" . 
                                    "Please <a href='index.php'>try again</a>";
                }
                *mysqli_free_result($result);*
                require_once("db_close.php");
            }else{
                $message = "<h1>Please enter a valid username/password</h1>";
            }
            //header/footer only required if submitting to a seperate page
?>

回答1:

Your first issue is that you have written the code like this

 $result - mysqli_query($db_server, $query);

This is incorrect please change with below line of code.

$result = mysqli_query($db_server, $query);

Hope it will help you.