Security Warning: этот ответ не соответствует лучшим рекомендациям по безопасности. Эвакуация неадекватна для предотвращения SQL-инъекции , вместо этого используйте подготовленные операторы . Используйте стратегию, изложенную ниже, на свой страх и риск. (Кроме того,
mysql_real_escape_string()
был удален в PHP 7.)Вы могли бы сделать что-то основное:
$safe_variable = mysql_real_escape_string($_POST["user-input"]); mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");
Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).
LIKE 'WC[[]R]S123456'
или
LIKE 'WC\[R]S123456' ESCAPE '\'
Должен работать.
Вот то, что я на самом деле использовал:
like 'WC![R]S123456' ESCAPE '!'
Ключевое слово ESCAPE используется, если необходимо искать специальные символы как % и _, которые обычно являются подстановочными знаками. При определении ESCAPE SQL будет искать буквально % символов и _.
Вот хорошая статья еще с некоторыми примерами
SELECT columns FROM table WHERE
column LIKE '%[[]SQL Server Driver]%'
-- or
SELECT columns FROM table WHERE
column LIKE '%\[SQL Server Driver]%' ESCAPE '\'
Мне нужно было исключить имена, начинающиеся с символа подчеркивания, из запроса, поэтому я закончил так:
WHERE b.[name] not like '\_%' escape '\' -- use \ as the escape character