将所有mysql选定的行放入一个数组中

Posted

技术标签:

【中文标题】将所有mysql选定的行放入一个数组中【英文标题】:Get all mysql selected rows into an array 【发布时间】: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 并使用PDO 或MySQLi。如果您不能决定,this article 将帮助您选择。如果你想学习,here is good PDO tutorial. 如果您要复制/粘贴,toske 需要添加一个结束 )$allRows = array(); while($row = mysql_fetch_array($result)) $allRows[] = $row 【参考方案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】:

    遍历结果并将每个结果放入一个数组中

    使用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()

【讨论】:

以上是关于将所有mysql选定的行放入一个数组中的主要内容,如果未能解决你的问题,请参考以下文章

将选定日期与表列或 MySQL 查询生成的日期数组进行比较

如何在tableview的可变数组中存储多个选定的行项

将选定的行复制到填充 Xcode 中另一个 UITableView 的数组

比较两列的值小于或等于并在mysql中获取选定的行?

我想将数组的内容放入 h3 元素中,然后将其放入其容器中

防止在第一次单击后检查最后一个单元格行,反之亦然&将选定的行添加/删除到数组