簡體   English   中英

mysqli_fetch_array&row期望參數1為mysqli_result

[英]mysqli_fetch_array & row expects parameter 1 to be mysqli_result

我是SQL的新手,正在嘗試建立一個登錄系統。 我已按照指南進行操作,但是嘗試登錄時會收到以下2條消息:

警告:mysqli_fetch_array()期望參數1為mysqli_result,在第13行的C:\\ xampp \\ htdocs \\ loginguide / login.php中給出布爾值

警告:mysqli_num_rows()期望參數1為mysqli_result,在第16行的C:\\ xampp \\ htdocs \\ loginguide \\ login.php中給出布爾值

我在MyPHPAdmin上創建了一個數據庫,但是我也不知道該怎么做,我是要向該數據庫添加表嗎?

這是login.php代碼:

<?php
   include("config.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($db,$_POST['username']);
      $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

      $sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

      if($count == 1) {
         session_register("myusername");
         $_SESSION['login_user'] = $myusername;

         header("location: welcome.php");
      }else {
         $error = "Your Login Name or Password is invalid";
      }
   }
?>
<html>

   <head>
      <title>Login Page</title>

      <style type = "text/css">
         body {
            font-family:Arial, Helvetica, sans-serif;
            font-size:14px;
         }

         label {
            font-weight:bold;
            width:100px;
            font-size:14px;
         }

         .box {
            border:#666666 solid 1px;
         }
      </style>

   </head>

   <body bgcolor = "#FFFFFF">

      <div align = "center">
         <div style = "width:300px; border: solid 1px #333333; " align = "left">
            <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>

            <div style = "margin:30px">

               <form action = "" method = "post">
                  <label>UserName  :</label><input type = "text" name = "username" class = "box"/><br /><br />
                  <label>Password  :</label><input type = "password" name = "password" class = "box" /><br/><br />
                  <input type = "submit" value = " Submit "/><br />
               </form>

               <div style="font-size:11px;<?php echo $error; ?></div>

            </div>

         </div>

      </div>

   </body>
</html>

1)您需要在SQL查詢中包括“活動”列,或僅將*替換為*

select * from admin where ....
(or)
select id, active from admin where ....

2)檢查給定示例中包含的config.php文件,如果DB_USERNAME,DB_PASSWORD,DB_DATABASE名稱輸入錯誤(語法錯誤),則會收到該警告。

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'root');
define('DB_DATABASE', 'testDB');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>

我認為您的查詢失敗並返回了錯誤的值。 檢查您的查詢,如果它運行正常,請將其放在您的代碼中:

$result = mysqli_query($db,$sql);

if (!$result) {
    printf("Error: %s\n", mysqli_error($db));
    exit();
}

欲獲得更多信息。

http://www.php.net/manual/zh/mysqli.error.php

您只需選擇ID,然后使用“活動”

因此,您應該首先解決該問題:

SELECT * FROM admin WHERE username = '$myusername' and passcode = '$mypassword'

現在應該可以工作了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM