Я не думаю, что это был самый ясный вопрос, но пример должен сделать его немного яснее.Как вы кодируете апостроф так, чтобы он был доступен для поиска в mysql?
У меня есть таблица с именами фильмов, некоторые из которых содержат апострофы. У меня есть окно поиска, которое используется для поиска фильмов.
Если я выполнять поиск с помощью
mov_title = '$search_keywords'
все это работает, но этот метод не даст никаких результатов для частичного поиска, поэтому я должен использовать этот
mov_title LIKE '%$search_keywords%'
Этот метод отлично работает названия A-Za-z0-9, но если заголовок имеет апостроф, он не может найти фильм, даже если я делаю точное совпадение.
Перед названия хранятся в БД, я их через это:
$search_keywords = htmlspecialchars(mysql_escape_string($_GET["search_keywords"]));
Так в БД, есть прямой слэш перед каждым одного апострофа.
Единственный способ сопоставить название фильма с апострофом - физически поставить переднюю косу перед апострофом в окне поиска.
Это кажется настолько тривиальным, и я уверен, что решение болезненно очевидно, но я просто не вижу его.
Удаление htmlspecialchars() ничего не изменило. Ведет себя точно так же. – 2009-03-06 23:05:30
Поскольку значения в вашей базе данных уже использовались htmlspecialchars(). Вам нужно отменить все эти значения. Например, используйте html_entity_decode() и stripslashes(). –
Я исправил некоторые тестовые значения, и Im все еще не смог их найти. – 2009-03-06 23:11:14