2014-01-31 5 views
0

У меня проблемы с моим методом поиска, я использую MATCH AGAINST, потому что это лучше, чем LIKE. Например, у меня есть база данных, полная городов, и когда я ввожу название города (например, Москва) в поле ввода, возникает ошибка «Неизвестный столбец« Москва »в разделе« where clause ». У меня есть две колонки в моей базе данных, CITY_ID и CITY_NAMEMATCH AGAINST неизвестная колонка

enter image description here

My SQL-запрос выглядит следующим образом

"SELECT city_name FROM default_cities WHERE MATCH(city_name) AGAINST($city)" 

Если кто-то есть какие-либо предложения, я буду иметь в виду :)

ответ

2
"SELECT city_name FROM default_cities WHERE MATCH(city_name) AGAINST('$city')" 

Используйте кавычки для $ города

EDIT

Не забудьте избежать. (например, «l'amour»)

+0

И избегайте его, даже если это не данные, предоставленные пользователем, потому что ** кто-то ** собирается жить в «Coeur d'Alene» или что-то подобное. – ceejayoz

+0

Да, вы правы – MustDie1Bit

+0

Спасибо, я просто не могу поверить в ту глупую ошибку, но теперь появилась новая ошибка «Используемый тип таблицы не поддерживает индексы FULLTEXT» – user3104718

2

Если вы отправили свой код, мы могли бы сообщить вам, что вам нужно поставить одинарные кавычки против $city. Вы должны использовать подготовленные заявления. Я тоже пойду на конечность и угадаю, что вы используете функции mysql_. Те, являются устаревшими, и вы должны использовать PDO или mysqli_

Смежные вопросы