PHP переменная в регулярных выражениях? - PullRequest
3 голосов
/ 11 сентября 2010

У меня есть переменная $ word, и я хотел бы сопоставить ее в своем операторе select что-то вроде этого: "выберите * из таблицы, где регулярное выражение столбца '[0-9] $ word'" но это не работает, так как я могу поместить переменную в регулярное выражение?

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 сентября 2010

Вы должны только правильно указать его в запросе SQL, например:

mysql_query("SELECT * FROM table WHERE column REGEXP 'prefix_".$word."'");

Но вы должны помнить, что переменные данные должны быть должным образом экранированы, я думаю, что addlashes () будет достаточно.

1 голос
/ 11 сентября 2010

Вы можете попробовать использовать preg_quote() для экранирования вашей строки:

$sql = "select * from table where column regexp '[0-9]" . preg_quote($word) . "'";

Возникнут некоторые проблемы, потому что MySQL (при условии, что это ваша БД) может иметь совершенно другое представление о том, какие символы являются специальными, чемPCRE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...