Как исправитть ошибку в БД?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 19 мая 2016 в 10:41
2.5.1 есть несколько типов контента, везде примерно одинаковые типы полей. Если в компоненте поиск включены пару типов, поиск работает, стоит включить ещё один (практически такой же) как отладчик выдаёт ошибку:
  1.  
  2. Ошибка в запросе БД:
  3.  
  4. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext) AGAINST ('>\"транспорт\" <+транспо*' IN BOOLEAN MODE)' at line 3
  5. SELECT id
  6. FROM cms_con_novosti
  7. WHERE is_pub = 1 AND MATCH(title, fulltext) AGAINST ('>\"транспорт\" <+транспо*' IN BOOLEAN MODE)
  8.  
  9. Последние вызовы:
  10.  
  11. getSearchResultsCount() @ M:\domains\mline.el\system\controllers\search\actions\index.php : 101
  12. search() @ M:\domains\mline.el\system\controllers\search\actions\index.php : 25
  13. run()
  14. call_user_func_array() @ M:\domains\mline.el\system\core\controller.php : 382
  15. runExternalAction() @ M:\domains\mline.el\system\core\controller.php : 308
  16. runAction() @ M:\domains\mline.el\system\core\core.php : 687
  17. runController() @ M:\domains\mline.el\index.php : 35
  18.  
  19.  
Ничего не пойму. Структура таблиц одинаковая. Help my!!!
#2 19 мая 2016 в 11:26
А в таблице cms_con_novosti есть поле fulltext ?
Еще надо учесть, что при работе с MATCH запрещено использовать в качестве имен полей зарезервированные слова.
И хоть fulltext в зарезервированных не значится, но может именно оно мускулу не нравится?

Вообще, у меня такой запрос выглядит так:

  1. SELECT id
  2. FROM cms_con_articles
  3. WHERE is_pub = 1 AND MATCH(title) AGAINST ('>\"транспорт\" <+транспо*' IN BOOLEAN MODE)
И никакого фултекста…
#3 19 мая 2016 в 11:31
Оказалось, что в мускуле есть методы полнотекстового поиска Fulltext search. Угораздило же меня именно так назвать поле!
Вывод: Никогда не называйте поля системными именами мускула! Всё починил.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.