MySQL 轉義是指將特殊字符轉換為安全字符,以避免 MySQL 服務器對它們進行錯誤地處理。這個過程是MySQL管理的重要過程,因為不轉義無法正確地處理特殊字符。
MySQL 可以使用反斜線 "\" 或者前綴 "0x" 的十六進制值來轉義字符。
SELECT 'You\'ve got it' as escape_demo;
在上面的例子中,我們使用反斜杠將單引號轉義,獲取到的值是:You've got it。
以下是 MySQL 轉義字符的完整列表:
\' 單引號 \" 雙引號 \0 NULL 字符 \n 換行符 \r 回車符 \\ 反斜杠 \b 退格符 \t 制表符 \Z 代表字符串的結束 \% 匹配百分號 \_ 匹配下劃線
比如我們使用以下命令將雙引號替換為兩個單引號:
SELECT REPLACE('He said, "I\'m coming"', '\"', '\'') as escape_demo;
我們得到的結果是:He said, 'I'm coming'
在寫有關 MySQL 語句的時候,建議使用參數化查詢。參數綁定可以幫助我們避免 SQL 注入攻擊,并且無需手動轉義字符串。
$stmt = $pdo->prepare('SELECT * FROM my_table WHERE my_value = :value'); $stmt->bindParam(':value', $value); $stmt->execute();
在這個例子中,我們使用了 prepare()、bindParam() 和 execute()函數進行參數綁定,其中 :value 是一個占位符,傳入的 $value 變量會被自動轉義。
總之,MySQL 轉義是保證 MySQL 服務器安全性的重要過程,為了防止 SQL 注入攻擊,我們應該使用參數化查詢。