警告:当我有2个参数时,mysqli_fetch_array()要求参数1为mysqli_result

时间:2017-02-14 05:46:55

标签: php mysql arrays login

所以我有这个错误:

  

警告:mysqli_fetch_array()需要参数1   是mysqli_result,在C:\ wamp \ www \ Foredeck \ login.php上给出的字符串   第101行。

我在互联网上做了一些研究,但仍然不明白错误在哪里。我想我这里有两个参数。那有什么不对?

顺便说一句,我是PHP的新手。

<?php
include("bdconnect_Foredeck.php");
$link = mysqli_connect($host, $login, $pass, $dbname);
$msg  = '';

if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) {

  $Identifiant = $_POST["username"];
  $MotPasse    = $_POST["password"];
  $query       = "
    SELECT * 
    FROM   admin 
    WHERE  identifiant = '$Identifiant' 
           AND mdp_admin = '$MotPasse'";
  $result      = mysqli_query($link, $query);
  $row         = mysqli_fetch_array($query); //Line 101//

  if ($row) {
    $_SESSION['valid']   = true;
    $_SESSION['timeout'] = time();
    $msg                 = 'Connexion Réussite';

    if ($_POST['username'] == 'Isabelle' && $_POST['password'] == 'Isabelle1') {

      $_SESSION['username'] = $_row['Identifiant'];
      echo "<script type='text/javascript'>alert('Connexion Réussite');
window.location='foredeck_superadmin.php'; </script>";
      header("refresh:3 location: foredeck_superadmin.php");

    } else {

      $_SESSION['username'] = 'foredeckadmin';
      echo "<script type='text/javascript'>alert('Connexion Réussite');
window.location='foredeck.php'; </script>";
      header("refresh:3 location: foredeck.php");

    }

  }

} else {
  $msg = 'Identifiant ou Mot de Passe incorrecte';
  $msg = "<script type='text/javascript'>alert('$msg')</script>";
}
?>

3 个答案:

答案 0 :(得分:1)

使用$row=mysqli_fetch_array($result);代替$row=mysqli_fetch_array($query);

由于mysqli_fetch_array()函数将结果行作为关联数组提取,并且您传递 $ query ,其类型为 string 。所以,它的投掷错误。

答案 1 :(得分:1)

mysqli_fetch_array()函数接受2个参数。第一个是查询的结果,然后第二个参数接受您想要获得的结果类型。选项为MYSQLI_NUM&lt; - 这是您希望按位置获取数据的时间  和MYSQLI_ASSOC&lt; - 按行名称引用获取数据。第三个选项是MYSQLI_BOTH,如果您想要引用MYSQLI_NUMMYSQLI_ASSOC

答案 2 :(得分:1)

尝试获取记录

的以下语法
while($row = mysqli_fetch_assoc($result)){
   // Print Record
}