Ettevalmistatud avaldiste mitmekordne täitmine PDO-s PHP-s
Me saame täita ettevalmistatud avaldist andmebaasipäringu jaoks mitu korda. See on ressursside poolest veidi kasumlikum, kui seda iga kord uuesti ette valmistada.
Olgu näiteks vaja teha päringud kasutajate palgaandmete uuendamiseks tabelis.
Oletame, et meil on juba assotsiatiivne massiiv,
milles võtmena on märgitud
id kasutaja id ja väärtusena -
tema palk:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Valmistame päringu ette üks kord:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
Ja nüüd tsüklis käime läbi oma massiivi ja täidame oma ettevalmistatud päringu igas iteratsioonis erinevate andmetega kohatäitjate jaoks:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Antud on massiiv kasutajate id-de ja vanustega:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Kirjutage kood, mis tsüklis uuendab kasutajate andmeid.