Wielokrotne wykonywanie przygotowanych wyrażeń w PDO w PHP
Możemy wykonywać przygotowane wyrażenie dla zapytania do bazy danych kilka razy. Jest to nieco bardziej korzystne pod względem zasobów, niż przygotowywanie go za każdym razem od nowa.
Załóżmy dla przykładu, że potrzebujemy wykonać zapytania aktualizujące pensje użytkowników w tabeli.
Załóżmy, że mamy już tablicę asocjacyjną,
w której w postaci klucza będzie podany
id użytkownika, a w postaci wartości -
jego pensja:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Przygotujmy zapytanie raz:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
A teraz w pętli przeiterujmy naszą tablicę i wykonujmy nasze przygotowane zapytanie w każdej iteracji z różnymi danych dla placeholderów:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Dana jest tablica z identyfikatorami i wiekiem użytkowników:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Napisz kod, który w pętli zaktualizuje dane użytkowników.