如何使用PDO :: quote而不会被引号包围的字符串?

时间:2011-12-01 12:55:10

标签: php sql pdo

我尝试使用PDO::quote来转义LIKE表达式中的字符串,因此用户字符串不得像以下一样被包围:

LIKE "%userStringToEscape%"

有办法吗?

3 个答案:

答案 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}";

http://php.net/manual/en/pdo.quote.php