-1

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

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

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

4

2 回答 2

4
$data  = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
     $data[] = $row;
  }
}
return $data;
于 2013-06-25T14:51:02.873 回答
-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
}

该功能仅用于提高可读性

于 2013-06-25T02:22:05.003 回答