2013-03-25 3 views
0

Я использую переменные $ _GET, чтобы вытащить из базы данных MySQL, чтобы заполнить динамическую страницу. Некоторые из переменных имеют специальные символы, которые необходимо отфильтровать для использования в качестве URL-адреса. Однако, вытаскивая переменную из url, новая строка не будет соответствовать переменной базы данных из-за недостающих символов. Есть ли способ отфильтровать переменную из базы данных в запросе MySQL до того, как она попытается сопоставить ее с строкой? Пример:Можете ли вы использовать php для фильтрации переменных MySQL?

column_name = "ProductName ™"
$ GetVariable = "ProductName"

SELECT * FROM table_name WHERE str_replace($array_of_characters, '', column_name) = '$GETvariable'; 

выше не работает, но есть что-то подобное, что будет? Благодарю.

+1

Вы можете использовать регулярное выражение или просто «как». – ethrbunny

+0

Я бы использовал подобное заявление, но некоторые продукты выходят как Product ™ Name. Переменная GET будет ProductName и не соответствует. –

+0

регулярное выражение будет работать лучше. http://dev.mysql.com/doc/refman/5.1/en/regexp.html – ethrbunny

ответ

1

Вы делаете это неправильно.

  1. Лучший способ для сопоставления URL с базой данных является использование уникальный идентификатор в URL, как переполнение стека делает:
    stackoverflow.com/questions/15621389/curiosity-got-destroed-by-martians
    несмотря на титул изменяет это будет всегда точку вправо страница
  2. Если вы все еще хотите использовать такой ненадежный источник как slugified название, чтобы определить ваши страницы, то только путь к мАГАЗИНУ slugified версии в базе данных