-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 に答える