21

我想知道 php 中是否有一个函数可以让我将所有选择的数据放入一个数组中。目前我正在使用 mysql_fetch_array 并且正如我在手册中阅读的那样,该函数不会获取表中的每条记录。

$result = mysql_query("SELECT * FROM $tableName");            
$array = mysql_fetch_array($result);

  echo json_encode($array);
4

6 回答 6

58

出于性能和安全目的,我建议使用 MySQLi 或 MySQL PDO,但要回答这个问题:

while($row = mysql_fetch_assoc($result)){
     $json[] = $row;
}

echo json_encode($json);

如果你切换到 MySQLi,你可以这样做:

$query = "SELECT * FROM table";
$result = mysqli_query($db, $query);

$json = mysqli_fetch_all ($result, MYSQLI_ASSOC);
echo json_encode($json );
于 2012-06-29T15:17:02.050 回答
10
  1. 循环遍历结果并将每个结果放入数组中

  2. 用于mysqli_fetch_all()一次获取所有内容

于 2012-06-29T15:18:25.790 回答
8

你可以试试:

$rows = array();
while($row = mysql_fetch_array($result)){
  array_push($rows, $row);
}
echo json_encode($rows);
于 2012-06-29T15:18:04.980 回答
1
$name=array(); 
while($result=mysql_fetch_array($res)) {
    $name[]=array('Id'=>$result['id']); 
    // here you want to fetch all 
    // records from table like this. 
    // then you should get the array 
    // from all rows into one array 
}
于 2014-01-31T09:36:47.577 回答
1

这个方法也很不错,大家可以试试。

 try {
       while ($row=mysqli_fetch_array($res)) {
        array_push($row...);           
    }    
} catch (Exception $e) {
     print($e->getMessage());
}
于 2021-09-23T08:40:47.377 回答
0

您可以在 no_of_row 时间内调用 mysql_fetch_array()

于 2020-03-31T14:07:53.257 回答