Я пытался обновить функцию поиска mysql с помощью полнотекстового поиска.Ошибка SQL при попытке реализовать полнотекстовый поиск
Это мой стол:
CREATE TABLE `locations` (
`loc` text NOT NULL,
PRIMARY KEY (`l_id`)
) ENGINE=MyISAM AUTO_INCREMENT=22222223 DEFAULT CHARSET=latin1;
И запрос:
$sql =
<<<SQL
SELECT *,
FROM locations
WHERE MATCH(loc) AGAINST($location)
SQL;
Но я получаю эту ошибку:
Фатальная ошибка: Uncaught исключение 'mysqli_sql_exception' с сообщением «У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'FROM location WHERE MATCH (loc) AGAINST (x)' в строке 2 '
Что может быть неправильным с моим кодом?
UPDATE: Удаленная запятая, как вы предлагали, но прямо сейчас firebug показывает только 500 Internal Server Error. Попробовал сменить запрос на старый:
$sql = <<<SQL
SELECT *
FROM `locations`
WHERE `loc` LIKE '$location%'
LIMIT 30;
SQL;
Сценарий работает с этим.
Внутренняя ошибка сервера 500 (или пустая страница) означает, что ваш скрипт выдает ошибку, но вы не настроили PHP для отображения сообщений об ошибках. Это то, что вам нужно исправить, прежде чем идти дальше; невозможно кодировать без помощи сообщений об ошибках. Вот краткое объяснение (http://stackoverflow.com/a/5680885/13508). Вы не можете публиковать сообщения на форуме каждый раз, когда вы получаете синтаксическую ошибку. –
@ ÁlvaroG.Vicario странно, но ему удалось увидеть ошибку из дополнительной запятой. –