transaction : ใช้สำหรับการทำงานที่ต้องทำหลายๆงานพร้อมกัน โดยถ้ามีงานใดงานหนึ่งไม่สำเร็จ งานทุกงานที่ทำไปจะ rolled back ค่ากลับไป หรือก็คือจะไม่มีอะไรเกิดขึ้น ทุกอย่างยังเหมือนเดิม
เหมาะกับงานที่เกี่ยวกพันกัน หรือมุ่งหวังให้ทุกงาน ต้องสำเร็จเหมือนกัน ในการรัยครั้งเดียว จะสำเร็จ แค่งานใดงานนึงไม่ได้
โดย method นี้จะรับข้อมูลเข้า 2 ตัว
ตัวแรกเป็น callback function สำหรับรันคำสั่ง
ตัวที่ 2 เป็นตัวเลข จำนวนครั้งที่ลองทำซ้ำอีกครั้ง แนะนำว่าให้ว่างไว้ Default เป็น 1 อยู่แล้ว
ตัวแรกเป็น callback function สำหรับรันคำสั่ง
ตัวที่ 2 เป็นตัวเลข จำนวนครั้งที่ลองทำซ้ำอีกครั้ง แนะนำว่าให้ว่างไว้ Default เป็น 1 อยู่แล้ว
ถือว่าเป็น method ที่น่าสนในมากๆตัวนึงเลย
แต่…แต่ การเขียนคำสั่ง จะเขียนอีกแบบ ที่ต้องกำหนดเป็นรายละเอียดเหมือนเขียนคำสั่ง Running SQL Queries
แต่…แต่ การเขียนคำสั่ง จะเขียนอีกแบบ ที่ต้องกำหนดเป็นรายละเอียดเหมือนเขียนคำสั่ง Running SQL Queries
ตัวอย่างข้อมูล
id owner balance 1 Anna 500 2 Brianna 500 3 Kerena 1000 4 Pitter 1000
ทดสอบ ด้วยการอัพเดท 2 Record ที่มีมีอยู่จริง
$result = DB::transaction(function () { DB::update('update book_banks set balance = 900 where id = 1'); DB::update('update book_banks set balance = 900 where id = 2'); });
$result = NULL
id owner balance 1 Anna 900 2 Brianna 900 3 Kerena 1000 4 Pitter 1000
ทดสอบอัพเดท 2Record โดยมี 1 Record ที่ไม่มีอยู่จริง
ผลคือไม่มีอะไรเกิดขึ้น
$result = DB::transaction(function () { DB::update('update book_banks set balance = 900 where id = 11'); DB::update('update book_banks set balance = 900 where id = 2'); });
$result = null
id owner balance 1 Anna 500 2 Brianna 500 3 Kerena 1000 4 Pitter 1000