Сначала оговорюсь, что возможно дело в настройках хостинга и кривизне рук, но все-таки хотелось бы услышать комментарий тех, кто сталкивался с подобной проблемой. По-порядку...
Система1С-Битрикс: Управление сайтом 9.0.3 (Бизнес)
Хостинг -
Ubuntu 10.04
Apache/2.2.14 (Ubuntu)
PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch
MySQL 5.1.41-3ubuntu12.3
ПроблемаСайт установлен с демо-данными, в том числе и магазином. В магазине совершаем покупку и делаем заказ. Идем в "Корзину" и вуаля:
по адресу /personal/cart/
Код |
---|
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] |
Что ж? Первым делом идем сюда, на форум, вторым - в FAQ, и по дороге в Описание модуля - и что-то мои глаза ничего не видят.
Далее смотрим на ошибку, в файл, где она произошла и получается такой костыль:
Код |
---|
$strSql = str_replace("AND ((()))", " ", $strSql ); |
в строке 142 файла /bitrix/modules/sale/mysql/discount.php .
Далее похожие ошибки, которые правятся как
Код |
---|
$strSql = str_replace("() OR" , " ", $strSql);
$strSql = str_replace("AND ((()))" , " ", $strSql);
|
в строке 165 файла /bitrix/modules/sale/mysql/delivery.php
По базе данных: как ни странно (и я искренне верил, что это должно помочь) перевод MySQL in TRADITIONAL mode результатов не дал. Ошибка не исчезла.
Код |
---|
До
sql mode ="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE, NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER"
После
sql mode="" |
РезультатОформления заказа работает.
ВопросКак должен быть настроен хостинг, что б подобной ошибки не возникало?
У кого-нибуть возникали сложности с установкой Битрикс с БД MySQL v.5.0 и выше ?