我有一个典型的数据库查询:
$query = mysql_query('SELECT titulo,referencia FROM cursos WHERE tipo=1 AND estado=1');
我可以将它转换成数组并打印数据:
while ($results=mysql_fetch_array($query)): ?>
echo $results['referencia'];
// and so...
endwhile;
但在某些情况下我需要在网页的另一部分打印相同的数据,但是 $results 数组似乎是空的(我使用 var_dump($results)
并且我得到 bool (假)
)。我打算用我读到的东西Create PHP array from MySQL column ,但不应该 mysql_fetch_array()
创建一个数组?那么,会发生什么?
最佳答案
泰,您的$result
在while
循环结束时为false
的原因是mysql_fetch_array
到达查询集末尾时返回 false
。 (请参阅主题上的 PHP Docs)当您到达查询集的末尾时,$results
设置为 false
并且 while
循环退出。如果您想保存数组(数据库行结果)供以后使用,请按照 Chacha102 的建议进行操作并存储从数据库中提取的每一行。
$data = array();
while($results = mysql_fetch_array($query)) {
$data[] = $results;
}
foreach ($data as $result_row) {
echo $result_row['referencia'];
... etc.
}
关于php - 使用 mysql_fetch_array() 生成的数组在使用后消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144393/