将所有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选定的行放入一个数组中的主要内容,如果未能解决你的问题,请参考以下文章