As a result of switching to Bitrix 16.5 and php version 7, I got the following bug:
File: bitrix/modules/sale/mysql/delivery.php Line: 174
MySQL Query Error: SELECT DISTINCT D.ID as ID, D.NAME as NAME, D.LID as LID, D.PERIOD_FROM as PERIOD_FROM, D.PERIOD_TO as PERIOD_TO, D.PERIOD_TYPE as PERIOD_TYPE, D.WEIGHT_FROM as WEIGHT_FROM, D.WEIGHT_TO as WEIGHT_TO, D.ORDER_PRICE_FROM as ORDER_PRICE_FROM, D.ORDER_PRICE_TO as ORDER_PRICE_TO, D.ORDER_CURRENCY as ORDER_CURRENCY, D.ACTIVE as ACTIVE, D.PRICE as PRICE, D.CURRENCY as CURRENCY, D.SORT as SORT, D.DESCRIPTION as DESCRIPTION, D.LOGOTIP as LOGOTIP, D.STORE as STORE FROM b_sale_delivery D WHERE ((((D.LID = 's1' )))) AND ((((D.WEIGHT_FROM <= 942 )) OR (D.WEIGHT_FROM IS NULL) OR (D.WEIGHT_FROM = 0))) AND ((((D.WEIGHT_TO >= 942 )) OR (D.WEIGHT_TO IS NULL) OR (D.WEIGHT_TO = 0))) AND ((() OR (D.ORDER_PRICE_FROM IS NULL) OR (D.ORDER_PRICE_FROM = 0))) AND ((() OR (D.ORDER_PRICE_TO IS NULL) OR (D.ORDER_PRICE_TO = 0))) AND ((((D.ACTIVE = 'Y' )))) AND ((())) ORDER BY D.SORT ASC, D.NAME ASC [[1064] 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 ') OR (D.ORDER_PRICE_FROM IS NULL) OR (D.ORDER_PRICE_FROM = 0))) AND ((() OR (DO' at line 1] Trying to understand the essence of the error. I suppose that it arose due to switching to another driver and the structure of the request has changed somewhat. I would like to know where to dig.
((() OR (D.ORDER_PRICE_FROM IS NULL)- do you see empty brackets? Should not be empty, this is a syntax error. Directly with the PHP version it is not connected, the request itself is incorrectly formed. Look for where it is formed and why the brackets are empty . - Shallow