我有一个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'];
}
有什么想法吗?
答案 0 :(得分: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循环遍历它;