Я пытаюсь сделать простой поиск по нескольким словам с помощью команды RLIKE MySQL, но когда вы вставляете в ключевые слова такие как ") ($ *" Я получаю исключение PDO и ошибку MySQL , например, вставляя «(» я получаю:MySQL RLIKE специальные символы escaping PHP
SQL error: SQLSTATE[42000]: Syntax error or access violation: 1139 Got error 'parentheses not balanced' from regexp
и запрос очень прост:.
SELECT * FROM users WHERE users.name RLIKE :q ORDER BY users.name LIMIT 0, 20;
Где :q
является PDO парами для поиска ключевого слова Exists в PHP функции или PDO метод для этого вида сдерживания? Или если это не так?
Большое спасибо за ответ (извините за последнее время) Я разрешил возврат, используя обычный LIKE, делающий CONCATE из трех текстовых полей и проверяя результат поисковым запросом после основного экранирования «% »и другие символы, которые не разрешены в строках на моем сайте, так что: CONCATE (имя,« фамилия »,« имя пользователя ») LIKE«% test of name% », это не очень приятно видеть, но работает. – RyanJ