Шматразовае выкананне падрыхтаваных выразаў у PDO у PHP
Мы можам выконваць падрыхтаваны выраз для запыту да БД некалькі разоў. Гэта крыху выгадней па рэсурсах, чым падрыхтоўваць яго кожны раз нанова.
Хай для прыкладу нам трэба зрабіць запыты на абнаўленне зарплат карыстальнікаў у табліцы.
Хай у нас ужо ёсць асацыятыўны масіў,
у якім у выглядзе ключа будзе паказаны
id карыстальніка, а ў выглядзе значэння -
яго зарплата:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Падрыхтуем запыт адзін раз:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
А цяпер у цыкле будзем перабіраць наш масіў і выконваць наш падрыхтаваны запыт у кожнай ітэрацыі з рознымі данымі для плейсхолдераў:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Дадзены масіў з айдыйнікамі і ўзростамі юзераў:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Напішыце код, які ў цыкле абновіць даныя юзераў.