【发布时间】:2015-05-23 03:32:10
【问题描述】:
如何在查询中使用 PHP 循环,而不是将所有结果放入数组中然后循环遍历数组
我使用数组和循环的方式是这样的:
<?php $userInfos = $qry->querySelect( SQL CODE HERE );
foreach($userInfos as $uInfo)
{
$fName = $uInfo['fName'];
$lName = $uInfo['lName'];
$gender = $uInfo['gender'];
?>
First name is: <? echo $fName; ?> and Last name is <? echo $lName; ?>.
<?php } ?>
我想更好地了解 PHP 循环通过查询如何比数组更好。请将我重定向到一些示例,或者可能包含 MySQL 代码。
如果我要提取数百万条记录,如何将上述 php 代码转换为更高效?
非常感谢!
【问题讨论】:
-
只需确保不使用 *(所有列)构建查询,而只构建您需要的查询。除此之外,您需要对数据库运行查询并让 mysql 返回一个 php 数组,然后循环遍历该数组,我猜您已经在使用 querySelect 了。
-
我只是想知道,循环查询而不是包含所有值的数组有什么好处吗?
-
@danidee:是的,这是有好处的。 fetch 循环的好处是它需要less 内存。使用 fetch 循环,我们可以在检索到每一行时对其进行处理,然后将其丢弃,并将该内存重新用于下一行。我们一次只需要在内存中保存“一行”。将 fetchAll 放入一个数组中,这可能需要分配大量内存,以在我们处理第一行之前保存一个包含 每个 翻转行的 Hugh jass 数组。 (因此,如果您有无限量的可用内存并且它不能用于其他任何事情,那么没有区别。)