首頁 >資料庫 >mysql教程 >如何在LIKE語句中正確轉義MySQL通配符?

如何在LIKE語句中正確轉義MySQL通配符?

Linda Hamilton
Linda Hamilton原創
2024-12-10 13:29:131054瀏覽

How to Properly Escape MySQL Wildcards in LIKE Statements?

轉義 MySQL 通配符

在無法使用預準備語句的環境中,必須在將使用者輸入提交到 MySQL 之前徹底轉義以防止 SQL 注入。 PHP 的 mysql_real_escape_string 函數通常用於此目的,但它無法轉義 MySQL 通配符「%」和「_」。

為了解決這個問題,可以另外使用 addcslashes。然而,如使用者觀察到的,當包含通配符的輸入傳送到資料庫並檢索時,顯示的結果存在差異。

轉義之謎

使用者遇到了一種奇怪的行為,其中'_' 字元以反斜線('_') 為前綴,而' "' 和"'" 字元則為不是,即使三個字元都用''進行轉義。 LIKE 匹配的上下文,在一般MySQL 使用中不被視為通配符,不應被轉義。解決了此目的的轉義需求。 >

雙重轉義困境

在LIKE 匹配的上下文中,'_' 和'%' 成為特殊字元。 MySQL 使用反斜線('') 作為LIKE 轉義和字串文字轉義步驟的轉義字元。槓轉義。語句使用指定的轉義字元。 >為了增加安全性和可移植性,建議使用準備好的語句可用時的聲明。

以上是如何在LIKE語句中正確轉義MySQL通配符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn