2017-02-08 3 views
2

Gibt es einen Unterschied zwischen diesen beiden:PHP PDO fetchAll() vs direkten foreach Schleife

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

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

und

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

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

Gibt es große Unterschiede zwischen diesen beiden Methoden?

EDIT: Ich frage nur, denn beide scheinen für mich gleich zu funktionieren.

+1

ja; Der erste wird einen Fehler verursachen, da Sie nichts erhalten haben. Am wenigsten, von dem, was du gepostet hast. –

+0

Ja, es gibt einen großen Unterschied –

+0

Warum nicht versuchen Sie es und sehen? – Andy

Antwort

2

Der einzige Unterschied ist, dass der ehemalige doesn't consume extra memory für die zurückgegebenen Datensätze wie letzteres tut.

Allerdings sollten Sie im Allgemeinen nicht mehr Datensätze abrufen, als auf einer einzelnen HTML-Seite angezeigt werden könnten, der Unterschied wird als vernachlässigbar angesehen.

+0

Vielen Dank. Und vielen Dank für diesen Link. Viele nützliche Informationen dort kann ich lernen von :) EDIT: Wird als Antwort in 7 min. ^^ – bawsi

+0

Vielen Dank, wer auch immer diese Antwort uplooted, aber ich würde lieber diese upvote, um stattdessen für die Frage gehen. –

+0

Ist while loop am besten, um über Ergebnisse zu iterieren? Oder ist es nicht so wichtig, welche der 3 verwende ich? – bawsi