Здравствуйте, если у вас в корзине битрикса падает ошибка, типа этой:

File: …./bitrix/modules/sale/mysql/discount.php
Line: 143
MySQL Query Error: SELECT DISTINCT D.ID as ID, D.LID as LID, D.LID as SITE_ID, D.PRICE_FROM as PRICE_FROM, D.PRICE_TO as PRICE_TO, D.CURRENCY as CURRENCY, D.DISCOUNT_VALUE as DISCOUNT_VALUE, D.DISCOUNT_TYPE as DISCOUNT_TYPE, D.ACTIVE as ACTIVE, D.SORT as SORT, DATE_FORMAT(D.ACTIVE_FROM, ‘%d.%m.%Y %H:%i:%s’) as ACTIVE_FROM, DATE_FORMAT(D.ACTIVE_TO, ‘%d.%m.%Y %H:%i:%s’) as ACTIVE_TO FROM b_sale_discount D WHERE ((((D.LID = ‘s1’ )))) AND ((((D.ACTIVE = ‘Y’ )))) AND ((( D.ACTIVE_FROM IS NULL OR NOT (D.ACTIVE_FROM > ‘2010-06-17 15:08:14’)))) AND ((( D.ACTIVE_TO IS NULL OR NOT (D.ACTIVE_TO < ‘2010-06-17 15:08:14’)))) AND ((())) AND ((())) ORDER BY D.SORT ASC [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 ‘))) AND ((())) ORDER BY D.SORT ASC’ at line 1]

То для этой проблемы есть отличное решение!

Скорее всего ошибка возникает из-за проблем в совместимости ваших версий битрикса и php.
Решить проблему можно обновив php или битрикс на сервере, что не всегда возможно, или исправить 1 символ в ядре битрикса.
В файле /bitrix/modules/sale/general/order.php есть функция создания запроса SQL.

function PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
надо заменить на
function PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields)
и проблема должна исчезнуть.
Для ориентира — функция расположена примерно на 600-610 строках.

Имейте ввиду, что модификация файлов ядра не желательна и ваши изменения затрутся при первом же обновлении. Поэтому используйте это решение лишь как временную меру и при первой же возможности обновите битрикс или версию php, а лучше и то и другое.

MySQL ошибка в корзине битрикс
Метки:             

2 комментариев к “MySQL ошибка в корзине битрикс

Добавить комментарий для Константин Отменить ответ

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

90% сайтов рунета содержат уязвимости и могут быть взломаны! Проверь свой сайт!