3 bước cơ bản
1. PREPARE – Chuẩn bị câu lệnh
PREPARE stmt FROM 'SELECT tender_value FROM Tender WHERE Companyname = ?';
Dấu ? là placeholder cho giá trị sẽ truyền sau.
2. EXECUTE – Thực thi với giá trị cụ thể
SET @A = 'Singla Group.'; EXECUTE stmt USING @A;
USING @variable gán giá trị cho placeholder theo thứ tự.
3. DEALLOCATE – Giải phóng
DEALLOCATE PREPARE stmt;
Ví dụ hoàn chỉnh
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 | +--------------+ mysql> DEALLOCATE PREPARE stmt; Query OK, 0 rows affected (0.00 sec)
Lợi ích: Câu lệnh chỉ được parse một lần, thực thi nhiều lần với tham số khác nhau -> hiệu năng tốt hơn, an toàn chống SQL injection.