Prepared Statements ใน MySQL
MySQL server รองรับ prepared statements ซึ่งมีประโยชน์เมื่อต้องรันคำสั่งหลายคำสั่งที่แตกต่างกันเพียงรายละเอียดเล็กน้อย สามารถเตรียมคำสั่งหนึ่งครั้ง แล้ว execute หลายครั้งด้วยค่าต่างกัน ได้ประสิทธิภาพดีกว่าเพราะคำสั่งถูก parse โดยเซิร์ฟเวอร์เพียงครั้งเดียว
ขั้นตอนการใช้งาน:
1. PREPARE - เตรียมคำสั่ง
PREPARE stmt FROM 'Select tender_value from Tender Where Companyname = ?';
2. EXECUTE - รันคำสั่งที่เตรียมไว้
EXECUTE stmt USING @variable_name;
@variable_name จะมีค่าที่จะส่งไปแทนที่ ? ใน PREPARE statement ต้อง SET ค่าก่อน execute
3. DEALLOCATE - ปล่อยคำสั่งที่เตรียมไว้
DEALLOCATE PREPARE stmt;
ตัวอย่างเต็ม:
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; Query OK, 0 rows affected (0.09 sec) Statement prepared mysql> SET @A = 'Singla Group.'; Query OK, 0 rows affected (0.00 sec) mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+ 1 row in set (0.07 sec) mysql> DEALLOCATE PREPARE stmt; Query OK, 0 rows affected (0.00 sec)