Hoi mensen,

Een kort vraagje. Als ik 20 producten uit de database wil halen dan kan ik in PDO via fetchAll() al deze producten in 1 keer ophalen. Nu zie ik ook regelamtig de "while" constructie voorbijkomen, en ik vraag me af wat daar het voordeel van is:

<?php
$products = '';
while ($row = $result->fetch()) {
$products .= '<div class="product">' . $row->description . '</div>';
}
?>

Dit levert toch gewoon hetzelfde resultaat op?

<?php
$result = $result->fetchAll();
$products = '';
foreach ($result as $product) {
$products .= '<div class="product">' . $product->description . '</div>';
}
?>

Waarom ik dit vraag?

Ik heb nu een eigen databse class gemaakt die PDO extend. De method om gegevens op te halen heb ik fetch() genoemd. Echter, fetch() is ook een method van PDO die ik nu dus met mijn eigen method overschrijf. Dit levert op zich geen problemen op, tenzij ik ooit die "while" constructie nodig zou hebben. Daarom ben ik dus benieuwd wat daarvan de meerwaarde is, als er überhaupt een meerwaarde is.

Graag jullie reactie.
Ozzie PHP op 04/06/2013 14:00:40

[quote="Ward van der Put op 04/06/2013 06:55:43"]
Je kunt allicht in de PDO-code duiken, maar ik vermoed dat het toch achter de schermen met iteraties wordt gedaan.

Je bedoelt dat er sowieso een soort van while loop wordt uitgevoerd? Dit zou dan inhouden dat het niet uitmaakt als je zelf de rijen met een "while" constructie ophaalt, of dat je fetchAll gebruikt omdat die laatste achter de schermen waarschijnlijk dan ook een soort "while" constructie gebruikt. Maar inderdaad, het blijft gissen...[/quote]
Geen appels met peren vergelijken: de gecompileerde code van een PHP-extensie is namelijk per definitie sneller dan een PHP-script.
Okeej.

Reageren