Я пытаюсь использовать PDO::quote для экранирования строки в выражении LIKE, поэтому пользовательская строка не должна быть заключена в строку, например:
PDO::quote
LIKE
LIKE "%userStringToEscape%"
Есть ли способ сделать это?
$var = "%userStringToEscape%"; $var = $stmt->quote($var); $sql = "SELECT * FROM table WHERE field LIKE $var";
то же самое относится к подготовленным заявлениям
Просто сделай:
$like = $pdo->quote("%{$userStringToEscape}%"); $sql = "SELECT * FROM field LIKE {$like}";
http://php.net/manual/en/pdo.quote.php
Использование substr($db->quote($var), 1, -1)
substr($db->quote($var), 1, -1)
Правда, не надо. У вас будут большие проблемы, чем те, с которыми вы начинали.
Чистое решение для этого, конечно, $db->quote('%'.$var.'%')
$db->quote('%'.$var.'%')