в чем может быть проблема у хостинга?
В версии PHP. Запросите поддержку PHP не менее 5.3 версии. Ну и на досуге стоит почитатьтехтребования.в чем может быть проблема у хостинга?
понял, сейчас проверю версию, спасибо за быструю помощьВ версии PHP.
Вот что пишет отладка:
Ошибка в запросе БД:
syntax error, unexpected '+'
SELECT 1
FROM cms_con_pages
WHERE `is_pub` = '1' AND `is_approved` = '1' AND `is_parent_hidden` IS NULL AND MATCH(`title`) AGAINST ('>\"полиция\" <+полиц*' IN BOOLEAN MODE)
Последние вызовы:
modelSearch->getSearchResultsCount() @ /system/controllers/search/actions/index.php: 67
actionSearchIndex->run()
call_user_func_array() @ /system/core/controller.php: 422
cmsController->runExternalAction() @ /system/core/controller.php: 340
cmsController->runAction() @ /system/core/core.php: 788
cmsCore->runController() @ /index.php: 38
@parazok, запрос корректный, у вас проблема с сервером, наподобие такой. Обратитесь к хостеру.
Здравствуйте.
Ошибка syntax error означает, что запрос в БД был составлен некорректно, и не соответствует SQL-синтаксису. Не совсем понятно, на каком основании и из каких соображений, разработчики CMS утверждают, что это проблема на стороне сервера.
По ссылке также приведено описание возможного бага MySQL 5.6, в то время, как на нашем сервере используется 5.7.
Рекомендую разработчикам вашей CMS хотя бы ознакомиться с минимальной документацией по MySQL:
select 1 from cms_con_pages where is_pub = '1' and is_approved = '1' and is_parent_hidden is null and match(title) against ('>полиция +(<полиц*)' in boolean mode);
В итоге, надо править код тут /system/controllers/search/model.php.
Сделал так:
$ft_query .= '>\"'. $this->db->escape($this->original_query).'\" ';
$ft_query .= '+(<'. implode(' +', $this->query).')';
В итоге ничего править не нужно, ибо приведенный вами запрос полностью рабочий на MySQL 5.5, 5.6, 5.7
Но раз по каким-то причинам, именно у вас, из-за отсутствия скобок в морфологических фразах возникает ошибка, стоит сделать вот так:
$ft_query .= '>\"' . $this->db->escape($this->original_query).'\" <(';