PDO да PHP да тайёрланган ибораларни қайта-қайта бажариш
Биз БД га сўров учун тайёрланган иборани bир неча марта бажаришимиз мумкин. Бу уни ҳар сафар янгидан тайёрлашга қараганда ресурслар жиҳатидан бир оз фойдалироқ.
Мисол учун, бизга жадвалдаги фойдаланувчиларнинг маошларини янгилаш учун сўровлар бажариш керак бўлсин.
Бизда аллақачон ассоциатив массив мавжуд бўлиб,
унда калит сифатида фойдаланувчининг
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]);
}
?>
ID ва фойдаланувчилар ёшлари билан массив берилган:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Циклда фойдаланувчилар маълумотларини янгилайдиган кодни ёзинг.