2011-12-01 37 views
5

我嘗試使用PDO::quote逃脫在LIKE表達式的字符串,因此用戶的字符串不得包圍,如:如何使用PDO ::報價而不會將字符串用引號括起來?

LIKE "%userStringToEscape%" 

有沒有辦法做到這一點?

+0

爲什麼不走'「'出的聲明,並讓' %userStringToEscape%'「自己」的引號 –

+0

只要使用'SUBSTR($海峽,1,-1)'因爲它似乎是一個愚蠢的事情做雖然 –

+0

%是由函數我想逃跑 - ?。這是有點髒,刪除像這樣的報價:) – Leto

回答

5
$var = "%userStringToEscape%"; 
$var = $stmt->quote($var); 
$sql = "SELECT * FROM table WHERE field LIKE $var"; 

同樣適用於準備好的發言

+5

沒有回答這個問題。 –

+0

去回答這個問題直接,笑 –

+0

的問題的答案是「你不能做到這一點(有沒有出現是一個需要 - 看到彈片的答案 - 除非你是連結多個‘逃出’投入一個字符串)「:) –

0

使用substr($db->quote($var), 1, -1)

真的不過,不要。你最終會遇到比你開始的問題更大的問題。

乾淨的解決方案要做到這一點,當然,$db->quote('%'.$var.'%')

+3

嘿,沒必要downvote!至少這是對這個問題的直接回答。 Downvote的問題,而不是;-) –

+0

我不明白「實際上不」的問題。如果你發佈它,你實際上推薦它。爲什麼不先下定決心,寫一個不與自己矛盾的答案? –

+0

好吧,我會用「真的不過」 –

相關問題