2017-02-08 7 views
2

Есть ли разница между этими двумя:PHP PDO fetchAll() против прямого цикла Еогеаспа

$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']; 
} 

Есть ли какие-либо существенные различия между этими двумя методами?

EDIT: Я просто спрашиваю, потому что оба работают одинаково для меня.

+1

Да; первая выдает ошибку, так как вы ничего не получили. Меньше всего, из того, что вы разместили. –

+0

Да, есть большая разница –

+0

Почему бы не попробовать их и посмотреть? – Andy

ответ

2

Единственная разница в том, что прежний doesn't consume extra memory для возвращенных записей, подобных последним.

Однако, как правило, вы не должны получать больше записей, чем может быть показано на одной странице HTML, в любом случае разница считается незначительной.

+0

Большое вам спасибо. И спасибо за эту ссылку. Много полезной информации там я могу узнать из :) EDIT: Отметьте как ответ за 7 мин. ^^ – bawsi

+0

Благодарю вас, кто поддержал этот ответ, но я предпочел бы, чтобы этот передовик пошел на вопрос. –

+0

Так что, в то время как цикл лучше повторять по результатам? Или это не важно, какой из трех я использую? – bawsi