我尝试使用PDO::quote
来转义LIKE
表达式中的字符串,因此用户字符串不得像以下一样被包围:
LIKE "%userStringToEscape%"
有办法吗?
答案 0 :(得分:6)
$var = "%userStringToEscape%";
$var = $stmt->quote($var);
$sql = "SELECT * FROM table WHERE field LIKE $var";
准备好的陈述
也是如此答案 1 :(得分:0)
使用substr($db->quote($var), 1, -1)
真的,不要。你最终会遇到比你开始时更大的问题。
执行此操作的干净解决方案当然是$db->quote('%'.$var.'%')
答案 2 :(得分:-1)
只是做:
$like = $pdo->quote("%{$userStringToEscape}%");
$sql = "SELECT * FROM field LIKE {$like}";