Проблема с ошибкой Column count doesn’t match value count at row в Битрикс

Пример ошибки:

MySQL Query Error:
insert into b_iblock_element_prop_m50
(IBLOCK_PROPERTY_ID, IBLOCK_ELEMENT_ID, VALUE, VALUE_ENUM, VALUE_NUM, DESCRIPTION)
values
    (978, 502765, '281746', 281746, 281746,0000, null ),
    (978, 502765, '2348636', 2348636, 2348636,0000, null )
[[1136] Column count doesn't match value count at row 1]

DB query error.
Please try later.


Решение:
Проблема в настройках локали.
В файле /bitrix/modules/iblock/classes/general/iblock.php используется функция sprintf("%01.".$dec."f", $rounded);
результат которой зависит от локали.
Попробуйте выставить в скрипте, где идет вызов запроса, либо в файле init.php

setlocale(LC_NUMERIC, 'C');

Если с этой настройкой локали приложение работает правильно, как вы и того ожидаете, тогда необходимо установить локаль в конфигурации сервера чтобы не использовать костыль setlocale(LC_NUMERIC, 'C'); в приложении

Рекомендуем к прочтению



Оставить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.