Valmiiden lausekkeiden moninkertainen suorittaminen PDO:ssa PHP:ssä
Voimme suorittaa valmistetun lausekkeen tietokantakyselyä varten useita kertoja. Tämä on hieman resurssitehokkaampaa kuin sen valmisteleminen uudelleen joka kerta.
Oletetaan esimerkiksi, että meidän on tehtävä päivityskyselyitä käyttäjien palkkoihin taulukossa.
Oletetaan, että meillä on jo assosiatiivinen taulukko,
jossa avaimena on käyttäjän
id ja arvona -
hänen palkkansa:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Valmistellaan kysely kerran:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
Ja nyt silmukassa käymme läpi taulukkomme ja suoritamme valmistellun kyselymme jokaisessa iteraatiossa erilaisilla tiedoilla paikkamerkkien osalta:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Annettu taulukko, jossa on käyttäjien id:t ja iät:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Kirjoita koodi, joka päivittää käyttäjien tiedot silmukassa.