การดำเนินการคำสั่งที่เตรียมไว้ซ้ำ ๆ ใน PDO ของ PHP

เราสามารถดำเนินการคำสั่งที่เตรียมไว้ สำหรับการสืบค้นฐานข้อมูลได้หลายครั้ง ซึ่งจะประหยัดทรัพยากรกว่าเล็กน้อย เมื่อเทียบกับการเตรียมคำสั่งใหม่ทุกครั้ง

เพื่อเป็นตัวอย่าง สมมติว่าเราต้องการ ทำคำสั่งอัปเดตเงินเดือนของผู้ใช้ในตาราง

สมมติว่าเรามีอาร์เรย์แบบเชื่อมโยงอยู่แล้ว ซึ่งในรูปแบบของคีย์จะระบุ id ของผู้ใช้ และในรูปแบบของค่า - จะเป็นเงินเดือนของเขา:

php<?php
  $salaries = [
    1 => 200,
    3 => 500,
    5 => 700,
  ];
?>

เตรียมคำสั่งสืบค้นหนึ่งครั้ง:

php<?php
  $res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>

และตอนนี้ในลูป เราจะวนลูปผ่านอาร์เรย์ของเรา และดำเนินการคำสั่งที่เตรียมไว้ของเรา ในแต่ละการวนซ้ำด้วยข้อมูลที่ต่างกัน สำหรับตัวยึดตำแหน่ง:

php<?php
  foreach ($salaries as $id => $salary) {
    $res->execute([$salary, $id]);
  }
?>
Задание 1

กำหนดอาร์เรย์ที่มีไอดีและอายุ ของผู้ใช้:

php<?php
  $ages = [
    1 => 20,
    3 => 30,
    5 => 40,
  ];
?>

เขียนโค้ดที่ในลูป จะอัปเดตข้อมูลของผู้ใช้