MYSQL PREPARE語句用于準備執行動態SQL語句。它可以幫助防止SQL注入攻擊,并提高查詢的性能。
下面是MYSQL PREPARE語句的基本用法:
PREPARE statement_name FROM 'SQL語句';
例如:
PREPARE stmt1 FROM 'SELECT * FROM customers WHERE id = ?';
EXECUTE statement_name USING parameter_value;
例如:
SET @id = 1;
EXECUTE stmt1 USING @id;
DEALLOCATE PREPARE statement_name;
例如:
DEALLOCATE PREPARE stmt1;
在使用PREPARE語句時,可以在SQL語句中使用占位符(?)來代替參數值。然后使用EXECUTE語句時,通過USING子句將參數值傳遞給占位符。這樣可以避免直接將參數值嵌入SQL語句中,從而防止SQL注入攻擊。
注意:使用PREPARE語句時,需要先開啟預處理功能。可以通過設置SET SESSION sql_mode = 'NO_BACKSLASH_ESCAPES';
來開啟預處理功能。