函数返回第一个数组值与mysqli查询结果

时间:2013-06-25 02:08:38

标签: php arrays function mysqli return

我的mysqli相关功能有一个小问题。这是代码:

$query = "SELECT * FROM uploads";
 if ($result = $mysqli->query($query)) {
   while ($row = $result->fetch_assoc()) {
     return $row;
  }

问题在于,当我使用此函数时,$row似乎是一个数组,但只有查询结果中的第一个值。 但是,如果我尝试使用return var_dump($row),则函数会按预期显示数组,并显示查询结果中的所有值。 你能否解释为什么会发生这种情况以及如何正确返回一个包含完整查询结果的数组。 谢谢!

2 个答案:

答案 0 :(得分:3)

$data  = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
     $data[] = $row;
  }
}
return $data;

答案 1 :(得分:-1)

改变这个:

while ($row = $result->fetch_assoc()) {
 return $row;
}

有关:

function test(){
 $query = "SELECT * FROM uploads";
 if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
 $data[]=$row;
  }
}else{
 $data=array();
}
 return $data;
}

通话测试功能

$bbb=test();

foreach($bbb as $key){
   $dbTableColumn1 = $key['column1'];
   $dbTableColumn2 = $key['column2'];
   $dbTableColumn3 = $key['column3'];
   //...$variable = $key['ColumnOfYourTable'];
   $text .= $dbTableColumn1.'|'.$dbTableColumn2.'|'.$dbTableColumn3.'<br/>';
  //Whatever you want to output
}

该功能仅用于提高可读性