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


How to use PDO::quote without getting string surrounded by quotes?

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

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.'%')

Just do:

$like = $pdo->quote("%{$userStringToEscape}%");
$sql  = "SELECT * FROM field LIKE {$like}";
http://php.net/manual/en/pdo.quote.php