在PHP中,在資料庫查詢中使用字串之前通常使用兩個函數來轉義它們:my_real_escape_string addslashes。雖然兩者的用途相似,但需要考慮一些細微的差異。
addslashes
此函數在特定字元之前加上反斜線:'(單引號)、"(雙引號) )、(反斜線)和NUL (NULL 位元組)它可以防止這些字元被解釋為SQL 注入攻擊的一部分。是專為MySQL 設計的,它為MySQL 需要轉義的字元添加反斜杠,包括x00、n、r、x1a、'(單引號)和"(雙引號)。但要注意的是,MySQL 中轉義的實際實作可能會涉及額外的字元。
mysql_real_escape_string 中未轉義字元的意義
兩者之間的關鍵差異功能在於沒有用addslashes轉義的字元。其中包括:
x00:
該字元表示 NULL 位元組,在 C 和其他程式語言中通常用於標記字串的結尾。轉義它有助於防止查詢過早終止。以上是為什麼在 MySQL 查詢中使用 mysql_real_escape_string 而不是 addslashes?的詳細內容。更多資訊請關注PHP中文網其他相關文章!