Вход

Если у вас возникли проблемы, пожалуйста, дайте мне знать, отправив электронное письмо на evgeniy@y-ea.ru. Спасибо!

Забыли пароль или не зарегестрированны?

Opencart 4 ошибка с БД

Evgeniy / 07 августа 2022 / Опубликовано в Блог
Opencart 4 ошибка с БД

В Opencart 4 с MySQL 8 есть ошибка с нулевой датой после установки:

Exception: Error: SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: '0000-00-00' Error Code : HY000
SELECT DISTINCT *, pd.`name` AS name, p.`image`, m.`name` AS manufacturer, (SELECT `price` FROM `oc_product_discount` pd2 WHERE pd2.`product_id` = p.`product_id` AND pd2.`customer_group_id` = '1' AND pd2.`quantity` = '1' AND ((pd2.`date_start` = '0000-00-00' OR pd2.`date_start` < NOW()) AND (pd2.`date_end` = '0000-00-00' OR pd2.`date_end` > NOW())) ORDER BY pd2.`priority` ASC, pd2.`price` ASC LIMIT 1) AS `discount`, (SELECT `price` FROM `oc_product_special` ps WHERE ps.`product_id` = p.`product_id` AND ps.`customer_group_id` = '1' AND ((ps.`date_start` = '0000-00-00' OR ps.`date_start` < NOW()) AND (ps.`date_end` = '0000-00-00' OR ps.`date_end` > NOW())) ORDER BY ps.`priority` ASC, ps.`price` ASC LIMIT 1) AS `special`, (SELECT `points` FROM `oc_product_reward` pr WHERE pr.`product_id` = p.`product_id` AND pr.`customer_group_id` = '1') AS `reward`, (SELECT ss.`name` FROM `oc_stock_status` ss WHERE ss.`stock_status_id` = p.`stock_status_id` AND ss.`language_id` = '1') AS `stock_status`, (SELECT wcd.`unit` FROM `oc_weight_class_description` wcd WHERE p.`weight_class_id` = wcd.`weight_class_id` AND wcd.`language_id` = '1') AS `weight_class`, (SELECT lcd.`unit` FROM `oc_length_class_description` lcd WHERE p.`length_class_id` = lcd.`length_class_id` AND lcd.`language_id` = '1') AS length_class, (SELECT AVG(`rating`) AS `total` FROM `oc_review` r1 WHERE r1.`product_id` = p.`product_id` AND r1.`status` = '1' GROUP BY r1.`product_id`) AS `rating`, (SELECT COUNT(*) AS `total` FROM `oc_review` r2 WHERE r2.`product_id` = p.`product_id` AND r2.`status` = '1' GROUP BY r2.`product_id`) AS `reviews`, p.`sort_order` FROM `oc_product` p LEFT JOIN `oc_product_description` pd ON (p.`product_id` = pd.`product_id`) LEFT JOIN `oc_product_to_store` p2s ON (p.`product_id` = p2s.`product_id`) LEFT JOIN `oc_manufacturer` m ON (p.`manufacturer_id` = m.`manufacturer_id`) WHERE p.`product_id` = '43' AND pd.`language_id` = '1' AND p.`status` = '1' AND p.`date_available` <= NOW() AND p2s.`store_id` = '0' in /var/www/user/data/www/example.com/system/library/db/pdo.php on line 55

Для того что бы избавиться от ошибки необходимо в файлах pdo.php или mysqli.php, в зависимости от вашего драйвера бд.

заменить строки.

Было:

$this->connection->query("SET SESSION sql_mode = 'NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION'");

Стало:
$this->connection->query("SET SESSION sql_mode = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'");

Сохраняем и всё, ошибки больше нет.

 


Комментарии

24.01.2023 22:52
Аватар

1. Петр пишет

Спасибо, очень выручили!

ответить

Новый комментарий

Имя:
:
Для редактирования комментария осталось 10 минут
TOP

Оставить заявку