0

我有一个 MySql 类,我通过将 Mysql 行作为方法返回来获取它们:

  public function fetch_assoc($result_set){
     return mysql_fetch_assoc($result_set);
  }

出于某种原因,当我尝试遍历通过我实例化的对象返回的方法时,它只返回一个结果。

  while ($row = $a->fetch_assoc($result_set){
  ...
  }

在做旧时尚方式的同时,给了我所有的行

  while($row = mysql_fetch_array($result_set)){
      $row['0'];
  } 

有任何想法吗?

4

1 回答 1

1

那是因为 mysql_fetch_assoc 只返回一个结果并将指针移动到下一个。因此,在每次迭代中,它返回移动指针并在到达结果末尾时返回 false。

您可以通过这种方式修改您的方法以使其工作:

public function fetch_assoc($result_set){
    $resultArray = array();
    while ($row = mysql_fetch_assoc($result_set){
        $resultArray[] = $row;
    }
    return $resultArray;
}

您可以这样使用数据:

foreach ($obj->fetch_assoc($result_set) as $row){
    echo $row['stuff'];
}

请注意,在这种情况下$obj->fetch_assoc($result_set)返回所有结果,我只是使用 foreach 循环遍历它;

于 2012-10-11T22:16:49.120 回答