PHP PDO fetchAll() 与直接 foreach 循环

PHP PDO fetchAll() vs direct foreach loop

这两个有什么区别吗:

$stmt = $db->prepare('SELECT * FROM ARTICLES');
$stmt->execute();

foreach ($stmt as $article) {
    echo $article['title'];
}

$stmt = $db->prepare('SELECT * FROM ARTICLES');
$stmt->execute();

$articles = $stmt->fetchAll();
foreach ($articles as $article) {
    echo $article['title'];
}

这两种方法有什么主要区别吗?

编辑:我只是问问,因为两者对我来说似乎都一样。

唯一的区别是前者doesn't consume extra memory对于返回的记录和后者一样。

但是,考虑到您通常不应获取比单个 HTML 页面上显示的记录更多的记录,因此差异可以忽略不计。