MYSQL-PHP:以数组形式获取MySQLi结果

MYSQL-PHP:以数组形式获取MySQLi结果,php,mysql,sql,arrays,mysqli,Php,Mysql,Sql,Arrays,Mysqli,这是更新代码 但我得到了错误:致命错误(调用未定义的方法User::fetch_assoc()) 这是我的方法代码 public function getAllUsers(User $user) { $stmt = $this->conn->prepare("SELECT u.user_id, u.email, u.name, u.phone, u.picture, s.status

这是更新代码

但我得到了错误:致命错误(调用未定义的方法User::fetch_assoc())

这是我的方法代码

    public function getAllUsers(User $user) 
    {
        $stmt = $this->conn->prepare("SELECT u.user_id, u.email, u.name, u.phone, u.picture, s.status 
                                      FROM ".$this->table_name." as u, status as s
                                      WHERE u.status_id = s.status_id");
        if($stmt == FALSE)
        {
            die($this->conn->error);
        }
        else 
        {

            $stmt->execute();
            $stmt->bind_result($user_id, $email, $name, $phone, $picture, $status);

            while($stmt->fetch())
            {
                $user->setUserId($user_id);
                $user->setEmail($email);
                $user->setName($name);
                $user->setPhone($phone);
                $user->setPicture($picture);
                $user->setStatus($status);
            }

            $stmt->close();
            return $user;
        }
    }
这是我在index.php中调用对象方法的代码

$app->get('/users', 'authenticate', function() 
{ 
        global $user_id;
        $response = array();


        $user = new User();

        // fetching all users
        $userDB = new UserDb(MySqlDb::getInstance()->connect());
        $result = $userDB->getAllUsers($user);

        $response["error"] = false;
        $response["users"] = array();

        // looping through result and preparing users array
        while ($user = $result->fetch_assoc()) 
        {

            $tmp = array();
            $tmp["user_id"] = $user->getUserId();
            $tmp["email"] = $user->getEmail();
            $tmp["name"] = $user->getName();
            $tmp["phone"] = $user->getPhone();
            $tmp["picture"] = $user->getPicture();
            $tmp["status"] = $user->getStatus();
            array_push($response["users"], $tmp);
        }

        echoRespnse(200, $response);
});
请检查我的传真,是不是错了?
谢谢:)

getAllUsers返回一个用户数组

所以$result是一个用户数组,而不是您可能期望的数据库查询结果


然后在$result上调用fetch_assoc(),这是一个用户数组,由于它没有此方法,因此可以调用未定义的方法User::fetch_assoc()

尝试执行$u['User_id']=$User->setUserId();在
getAllUsers
-我认为您从未执行过查询;迭代一个空数组,然后返回该数组。然后在返回的空数组上运行
fetch_array()
(这就是您看到的错误)。您应该看看使用mysqli的例子。我已经用while更改了foreach循环。但是我又犯了那个错误。你为什么不发布你现在的代码,而不是不同的版本呢?这个错误是不言自明的。在某个地方你混合了变量。您正在返回一个用户数组,但尝试对其调用方法fetch\u assoc。