Ошибка запроса SET OPTION SQL_BIG_SELECTS=1


На днях мы перестали получать заказы с интернета магазина на базе x-cart и беглый анализ показал, что лимит отправки писем для нашего тарифного плана у хостера исчерпан, а это 500 писем в сутки, но на часах всего 10 утра.

Анализируем ситуацию дальше, смотрим на ошибки, которые у нас пришли в спам на почтовый ящик. При этом интернет-магазин корректно работает, проходят заказы, поиск, серфинг.

Ошибка, которую шлет нам скрипт x-cart выглядит следующим образом:

From: name@domen.com
To: name@domen.com
Cc:
Date: Wed, 20 Jul 2016 14:08:18 +0300
Subject: SHOP: SQL error notification
[20-Jul-2016 14:08:17] SQL error:
Site        : http://legnum.info
Remote IP   : 213.213.213.213
Logged as   :
SQL query   : SET OPTION SQL_BIG_SELECTS=1
Error code  : 1064
Description : 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 ‘OPTION SQL_BIG_SELECTS=1’ at line 1
Request URI: //home.php?cat=1226
Backtrace:
/home/include/func/func.db.php:320
/home/include/func/func.db.php:217
/home/include/search.php:1072
/home/featured_products.php:80
/home/home.php:122
/home/dispatcher.php:144

————————————————-

// Should you require our technical assistance with the error logs troubleshooting feel free to contact us through the
// personal HelpDesk at https://secure.x-cart.com/customer.php or email us on support@x-cart.com
//
// Technical support service can be purchased at http://www.x-cart.com/technical-support.html

Делаем вывод, у нас ошибка синтаксиса SET OPTION SQL_BIG_SELECTS=1, хотя мы ничего не меняли.

Находим в /home/include/search.php, строка 1070:

// Calculate the number of rows in the search results

db_query(“SET OPTION SQL_BIG_SELECTS=1”);

Комментируем строку:

// Calculate the number of rows in the search results

//db_query(“SET OPTION SQL_BIG_SELECTS=1”);

Ошибка при поиске более не появляется, значит проблема именно тут.

Запрашиваем хостера, те открещиваются, мол ничего не обновлялось последние несколько месяцев, значит идем читать синтаксис для SET.

Узнаем версию MySQL, у нас она 5.6, а синтаксис SET OPTION SQL_BIG_SELECTS=1 использовался в ранних версиях.

Пробуем прописать SET SQL_BIG_SELECTS=1 без OPTION, проверяем, всё работает, ошибки более нет.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *