【问题标题】:Get all mysql selected rows into an array将所有mysql选定的行放入一个数组中
【发布时间】:2012-07-01 03:20:22
【问题描述】:

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

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

  echo json_encode($array);

【问题讨论】:

  • 那些mysql_... 函数陈旧且不安全。您应该使用 mysqli 或更好的 PDO - php.net/manual/en/book.mysqli.php, php.net/manual/en/book.pdo.php
  • 正如 Raeki 所说,mysql 已经很老了,但除此之外,如果您仍想循环遍历结果,您可以使用以下代码:$allRows = array(); while($row = mysql_fetch_array($result) {$allRows[] = $row }
  • 请不要将mysql_* 函数用于新代码。它们不再被维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDOMySQLi。如果您不能决定,this article 将帮助您选择。如果你想学习,here is good PDO tutorial.
  • 如果您要复制/粘贴,toske 需要添加一个结束 )$allRows = array(); while($row = mysql_fetch_array($result)) {$allRows[] = $row }

标签: php mysql arrays


【解决方案1】:

出于性能和安全目的,我建议使用 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 );

【讨论】:

  • 谢谢,这么多年了,这个答案终于让我明白了真相
  • 很高兴将近 10 年后,这个答案仍然有价值!
【解决方案2】:
  1. 遍历结果并将每个结果放入一个数组中

  2. 使用mysqli_fetch_all() 一次性获取它们

【讨论】:

    【解决方案3】:

    你可以试试:

    $rows = array();
    while($row = mysql_fetch_array($result)){
      array_push($rows, $row);
    }
    echo json_encode($rows);
    

    【讨论】:

      【解决方案4】:
      $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 
      }
      

      【讨论】:

        【解决方案5】:

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

         try {
               while ($row=mysqli_fetch_array($res)) {
                array_push($row...);           
            }    
        } catch (Exception $e) {
             print($e->getMessage());
        }
        

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-04-08
            • 2011-02-25
            • 1970-01-01
            • 2021-02-24
            • 2022-01-26
            • 2013-04-20
            • 2023-01-08
            • 1970-01-01
            相关资源
            最近更新 更多