我们如何正确地使用mysqli从表中获取所有记录


how do we use mysqli properly to fetch all the records from table?

我只得到一行,有人能告诉我如何从我的数据库表的表列得到所有的数据吗?

   public function getCategories(){
    $result = $this->db->query('SELECT * FROM newscat');
    $rows = array();
        while($row = $result->fetch_assoc()){
               $rows[] = $row;
               return $rows;
           }
     }

您正在从循环内返回。这会在第一轮就打破僵局。

return在循环外

做小改动

public function getCategories(){
    $result = $this->db->query('SELECT * FROM newscat');
    $rows = array();
    while($row = $result->fetch_assoc()){
             $rows[] = $row;
    }
    return $rows;
 }

你的问题是return $rows;。它应该位于 while之后。它会输入while语句,将第一行放到数组中,然后立即返回。您想要的是让while做它的事情,并且在之后完成,返回数组。

如果你使用的是mysqli。然后,您可以使用它的apiFfetch_all一次获取所有行。

例如: $ = $结果数组-> fetch_all (MYSQLI_ASSOC);

上面的代码将获得相应数组中所有相关的行。