MySQL 轉義函數:mysql_real_escape_string 與addslashes
PHP 函數mysql_real_escape_string() 和加義字元用於插入MySQL 資料庫的字串。但是,這兩個函數之間存在細微差別,可能會影響它們對不同用例的適用性。
addslashes()
addslashes() 取代一組預先定義的字元帶有反斜線以防止它們被資料庫解釋為特殊字元。 addslashes() 轉義的預設字元集包括單引號(')、雙引號(")、反斜線() 和NULL 位元組。
mysql_real_escape_string()
mysql_real_escape_string() 包裝了對MySQL 內部mysql_real_escape_string() 函數的調用,該函數轉義的字元範圍比addslashes() 更廣泛。 (空字節)
my_real_escape_string_real_escape_string 之間的主要差異()和addslashes()就在於它們對上面提到的轉義字元的處理。 mysql_real_escape_string() 會轉義一些addslashes() 不會轉義的字符,例如NULL 位元組、換行符和回車符。
此外,mysql_real_escape_string() 依據MySQL 定義的規則執行轉義操作,即可能與addslashes()所應用的轉義規則不同。例如,在 MySQL 的最新版本中,字串轉義可能涉及雙引號字符,而不是在它們前面加上反斜線。 mysql_real_escape_string() 會自動處理這些更改,而addslashes() 則不會。何時使用哪個函數
一般來說,mysql_real_escape_string() 優於addslashes()用於轉義 MySQL 資料庫的字串。這是因為 mysql_real_escape_string() 使用 MySQL 特定的轉義規則,確保字串已正確準備好插入 MySQL 查詢。
另一方面,addslashes() 適合需要轉義字串的情況用於其他目的,例如一般文字操作或準備顯示字串。但是,在使用它來轉義用於 MySQL 資料庫的字串時,必須了解addslashes() 的限制並徹底測試您的程式碼。以上是哪個轉義函數比較適合 MySQL:`mysql_real_escape_string` 或 `addslashes`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!