我嘗試使用PDO::quote
逃脫在LIKE
表達式的字符串,因此用戶的字符串不得包圍,如:如何使用PDO ::報價而不會將字符串用引號括起來?
LIKE "%userStringToEscape%"
有沒有辦法做到這一點?
我嘗試使用PDO::quote
逃脫在LIKE
表達式的字符串,因此用戶的字符串不得包圍,如:如何使用PDO ::報價而不會將字符串用引號括起來?
LIKE "%userStringToEscape%"
有沒有辦法做到這一點?
$var = "%userStringToEscape%";
$var = $stmt->quote($var);
$sql = "SELECT * FROM table WHERE field LIKE $var";
同樣適用於準備好的發言
沒有回答這個問題。 –
去回答這個問題直接,笑 –
的問題的答案是「你不能做到這一點(有沒有出現是一個需要 - 看到彈片的答案 - 除非你是連結多個‘逃出’投入一個字符串)「:) –
使用substr($db->quote($var), 1, -1)
真的不過,不要。你最終會遇到比你開始的問題更大的問題。
乾淨的解決方案要做到這一點,當然,$db->quote('%'.$var.'%')
嘿,沒必要downvote!至少這是對這個問題的直接回答。 Downvote的問題,而不是;-) –
我不明白「實際上不」的問題。如果你發佈它,你實際上推薦它。爲什麼不先下定決心,寫一個不與自己矛盾的答案? –
好吧,我會用「真的不過」 –
只要做到:
$like = $pdo->quote("%{$userStringToEscape}%");
$sql = "SELECT * FROM field LIKE {$like}";
爲什麼不走'「'出的聲明,並讓' %userStringToEscape%'「自己」的引號 –
只要使用'SUBSTR($海峽,1,-1)'因爲它似乎是一個愚蠢的事情做雖然 –
%是由函數我想逃跑 - ?。這是有點髒,刪除像這樣的報價:) – Leto