การดำเนินการคำสั่งที่เตรียมไว้ซ้ำ ๆ ใน 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,
];
?>
เขียนโค้ดที่ในลูป จะอัปเดตข้อมูลของผู้ใช้