【问题标题】:how do we use mysqli properly to fetch all the records from table?我们如何正确使用 mysqli 从表中获取所有记录?
【发布时间】:2011-08-30 06:18:30
【问题描述】:

我只得到一行,谁能告诉我如何从我的数据库表的表列中获取所有数据?

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

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    您正在从循环中返回。这将在第一轮打破它。

    return 在循环外。

    【讨论】:

    • 有一个问题,第一行的 id 被返回为 0 ,而不是表中的真实 id foreach($cat->getCategories() as $key => $val){ echo $val."   <a id='editcat' href='edit.php?id=".$key."'>Edit</a>   <a id='deletecat' href='delete.php?id=".$key."'>Delete</a><br />"; }
    【解决方案2】:

    做些小改动

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        例如: $array=$result->fetch_all(MYSQLI_ASSOC);

        以上代码将获取对应数组中所有关联的行。

        【讨论】:

          猜你喜欢
          • 2015-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-17
          相关资源
          最近更新 更多