Php mysqli_num_rows()总是抛出错误

Php mysqli_num_rows()总是抛出错误,php,mysql,Php,Mysql,我已经到处找了,但找不到解决问题的办法。 我有一个php登录脚本。当数据库中没有与用户输入的值匹配时,会显示一条错误消息。但还会抛出另一条警告 Warning: mysqli_num_rows() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\index.php on line 26 这是密码。我知道类似的问题已经被问过很多次了,但是没有一个能为我提供解决方案 <?php sess

我已经到处找了,但找不到解决问题的办法。 我有一个php登录脚本。当数据库中没有与用户输入的值匹配时,会显示一条错误消息。但还会抛出另一条警告

Warning: mysqli_num_rows() expects parameter 1 to be mysqli, 
boolean given in C:\xampp\htdocs\index.php on line 26
这是密码。我知道类似的问题已经被问过很多次了,但是没有一个能为我提供解决方案

    <?php

    session_start();
    require_once('connectionvariables.php');
    $error_msg = "";

    if(!isset($_SESSION['user_id']))
     {
      if(!empty($_COOKIE['user_id']) && !empty($_COOKIE['username']))
        {
          $_SESSION['user_id'] = $_COOKIE['user_id'];
          $_SESSION['username'] = $_COOKIE['username'];
     }
     else
      {
        if(isset($_POST['submit']))
         {
          $dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
        $user_username = mysqli_real_escape_string($dbc,trim($_POST['username']));
        $user_password = mysqli_real_escape_string($dbc,trim($_POST['password']));

        if(!empty($user_username) && !empty($user_password))
        {
            $query = "SELECT user_id,username FROM mismatch_user WHERE username =       '$user_username' AND password = SHA('$user_password')";
            $data = mysqli_query($dbc,$query); 
            if(mysqli_num_rows($data) == 1)
            {
                $row = mysqli_fetch_array($data);
                $_SESSION['user_id'] = $row['user_id'];
                $_SESSION['username'] = $row['username'];
                setcookie('user_id',$row['user_id'],time() + ( 60 * 60 * 3600));
                setcookie('username',$row['username'],time() + ( 60 * 60 * 3600));
                header('Location: http://www.google.com');    

            }
            else
            {
                $error_msg = 'enter a valid username and password';
            }
        }
        else
        {
            $error_msg = 'you have to enter username and password to Log In...';
        }
    }
   }
}
?>

您的查询中可能有错误。例如,未知列名或类似问题将让
mysqli_query
返回
false
(布尔值)。我建议你仔细检查你的查询内容,以纠正任何打字错误。有关详细信息,请参见。

能否编辑代码示例以显示哪一行是第26行?@@saladin akara。。添加了导致错误的行。找不到受影响的行函数。但是我认为您的查询失败了,因此它不是一个mysql资源,而是一个布尔值。在继续之前,只需检查$data是否为布尔值。并检查您的查询。我也尝试了“mysqli\u impacted\u rows()”函数,但显示了相同的错误警告说,会抱怨
mysqli\u impacted\u rows()
,但代码中不会显示对该函数的调用。请展示
C:\xampp\htdocs\index.php的全部内容,
+1抢先一步,我只是检查了一下文档以确定我是对的。
if(mysqli_num_rows($data) == 1)