警告:mysql_fetch_array()期望参数1是资源,给定对象

时间:2015-10-29 09:18:41

标签: php

我如何解决错误信息

  

警告:mysql_fetch_array()期望参数1是资源,   对象

我的代码:

if(isset($_POST['login']))
    {
        $username = mysql_real_escape_string($_POST['username']);
        $password = mysql_real_escape_string($_POST['password']);

        $res = $MySQLiconn->query(" SELECT * FROM users WHERE username = '$username' ");
        $row = mysql_fetch_array($res);

        if($row['password'] == md5($password))
        {
            $_SESSION['login'] = $row['user_id'];
            echo $_SESSION['login'];
        }
        else
        {
            echo "<script>alert('wrong details')</script>";
        }


    }

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

实际问题是您将mysqli方法和mysql方法混合在一起。

$res = $MySQLiconn->query(" SELECT * FROM users WHERE username = '$username' ");

在mysqli和

$row = mysql_fetch_array($res);

在mysql中。所以在这里传递$res object mysqli::query返回一个对象,而mysql_fetch_array()需要一个资源,这就是它显示这样一个错误的原因。 。因此,请使用mysql或使用mysqli来解决问题。

答案 1 :(得分:1)

您正在代码中混合mysqlmysqli次来电。使用mysqli_fetch_array代替mysql_fetch_array.