Πολλαπλή Εκτέλεση Προετοιμασμένων Εκφράσεων στην PDO της PHP
Μπορούμε να εκτελέσουμε μια προετοιμασμένη έκφραση για ένα ερώτημα στη ΒΔ πολλές φορές. Αυτό είναι λίγο πιο επωφελές ως προς τους πόρους, από το να την προετοιμάζουμε κάθε φορά από την αρχή.
Ας υποθέσουμε, για παράδειγμα, ότι πρέπει να κάνουμε ερωτήματα για την ενημέρωση των μισθών των χρηστών σε έναν πίνακα.
Ας υποθέσουμε ότι έχουμε ήδη έναν associative πίνακα,
στον οποίο το κλειδί θα είναι το
id του χρήστη, και η τιμή -
ο μισθός του:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Ας προετοιμάσουμε το ερώτημα μία φορά:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
Και τώρα σε έναν βρόγχο θα διασχίζουμε τον πίνακά μας και θα εκτελούμε το προετοιμασμένο ερώτημά μας σε κάθε επανάληψη με διαφορετικά δεδομένα για τα placeholders:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Δίνεται ένας πίνακας με τα id και τις ηλικίες των χρηστών:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Γράψτε κώδικα, ο οποίος σε βρόγχο θα ενημερώσει τα δεδομένα των χρηστών.