在準備好的語句不可用的舊伺服器上,在將使用者輸入到MySQL 之前轉義用戶輸入至關重要。然而,單獨使用 mysql_real_escape_string 並不能轉義 MySQL 通配符(_ 和 %),且某些模式會傳回意外結果。
例如,當發送輸入「test_test '時,資料庫顯示「test_test '。 「底線是否有反斜線前綴,而單引號和雙引號不?
_ 和% 在MySQL 中不是通配符,插入字串文字時不應轉義mysql_real_escape_string足以達到此目的。在符合表達式中使用時確實需要特殊處理,以確保它們僅符合其文字值,而不是模式。
轉義下劃線、百分號、LIKE表達式中使用的任何轉義字元。轉義字串中使用的字符,包括LIKE轉義字元。你可以使用雙反斜線轉義,例如,LIKE 'something\%`。 >
為了避免這種混亂並確保可移植性,您可以使用LIKE ... 覆寫預設轉義字元ESCAPE ... 建構。 🎜>以上是如何在 LIKE 子句中正確轉義 MySQL 通配符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!