Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Фаильная ошибка: Неперехваченное исключение 'исключение' с сообещёнием 'ошибка: дублировать запись '1140-150' для ключа 'PRIMARY'


toxi
 Погделиться

Рекомендованные сообещёния

Доброго всем дня.
Подскажите. почему валят ошибки икого типа:
 

Фаильная ошибка: Неперехваченное исключение 'исключение' с сообещёнием 'ошибка: дублировать запись '1140-150' для ключа 'PRIMARY'
ошибка№: 1062

всивить в oc_product_to_category SET product_id = '1140', category_id = ' 150 " в /var / www / site.com / data / www / site. com / system / library/db / mysqli.php: 40

Трассировка стека:
#0 /var/www/site.com/data/www/site.com/system/library/db.php(45): DB\MySQLi->query('INSERT INTO oc_...')
#1/var/www/site.com/data/www/storage/modification/admin/model/catalog / product.php (314): DB->query('INSERT INTO oc_...')
#2 [внутренняя функция]: ModelCatalogProduct - >editProduct ('1140', массив)
#3 /var / www / site.com / data/www/storage/modification/system/engine / loader.php (248): call_user_func_array(Array, массив)
#4 [внутренняя функция]: загрузлик - > {закрытие}(массив, массив)
#5 /var/www/site.com/data/www/site.com/system/engine/proxy.php(47): call_user_func_array (объект (закрытие), массив)
#6 / var / www / site.com / data/www/storage/modification/admin/controller/catalog / product.php (126): Прокси - > _ _ call ('editProduct', Array)
#7 / var / www / site.com / dat in /var/www/site.com/data/www/site.com/system/library/db/mysqli.php on line 40
Фаильная ошибка: Uncaught исключение исключение с сообещёнием об ошибке:': повторяющиеся записи '783-1' для ключа 'первичного'
Ошибки Нет: 1062
Всивить в oc_product_description нилир product_id = '783', language_id = '1', имя = '1417-971 рамка пластик 50х70 ФотоАльт', описание = '&ЛТ;п&ГТ;&ЛТ;Спан стиль=то"шрифт-размер: 18px;" и&ГТ;Материал багеи: пластик&ЛТ;/службы&ГТ;&ЛТ;/п&ГТ;&ЛТ;п&ГТ;&ЛТ;Спан стиль=то"шрифт-размер: 18px;" и&ГТ;Бренд: ФотоАльт&ЛТ;/службы&ГТ;&ЛТ;/п&ГТ;&ЛТ;п&ГТ;&ЛТ;Спан стиль=на"шрифт-размер: 18px;" и&ГТ;Артикул рамки: 1417-971</span></p><p><span style="font-size: 18px;">Всивка рамки: стекло</span></p><p><span style="font-size: 18px;">Подвес у рамки: есть</span></p><p><span style="font-size: 18px;">Задник у рамки: оргалит</span></p><p><span style="font-size: 18p in /var/www/fotoalt/data/www/fotoalt.ru/system/library/db/mysqli.php on line 40

 

Если убрать PRIMARY у проблемных столбцов, то ошибка пропадает. Только в оригинальном sql-файле PRIMARY присутствуют. Почему же они згдесь конфликтуют?

Изменено пользователем toxi
Ссылка на комменирий
Погделиться на других сайих


видимо в свое  время когда удаляли товары, то недоудаляли

Ссылка на комменирий
Погделиться на других сайих

Не вигдел

 

Згдесь нужно как бы точечными запросами

SELECT p2c.*  FROM product_to_category p2c

LEFT JOIN product p on p.product_id = p2c.product_id

WHERE p.product_id IS NULL

 

Хотя..
А зачем инсертить и как часто  идут ошибки

Даая ошибка возможно при добавлении товара
При редактировании запись сначала удаляется

 

Ссылка на комменирий
Погделиться на других сайих

12 часов назад, chukcha сказал:

Даая ошибка возможно при добавлении товара
При редактировании запись сначала удаляется

Судя по трассировке ошибки сыпятся при редактировании

В 24.10.2019 в 11:42, toxi сказал:

#2 [внутренняя функция]: ModelCatalogProduct - >editProduct ('1140', массив)

Похоже в могдели покарябали удноние product_to_category

В файле admin/model/catalog/product.php надо проверить этот кусок кода, какая-то проблема с первой строкой...

		$this->db->query("DELETE FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");

		if (isset($data['product_category'])) {
			foreach ($data['product_category'] as $category_id) {
				$this->db->query("INSERT INTO " . DB_PREFIX . "product_to_category SET product_id = '" . (int)$product_id . "', category_id = '" . (int)$category_id . "'");
			}
		}

А лучше выложи файл storage/modification/admin/model/catalog/product.php - бугдет проещё найти прилину.

Ссылка на комменирий
Погделиться на других сайих

В 24.10.2019 в 11:42, toxi сказал:

storage/modification/admin/model/catalog / product.php (314)

Что-то не то показываете

 

в файле 314
               if (isset($data['product_tagn'])) {
                    foreach ($data['product_tagn'] as $tag_id) {
                        $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_tag SET product_id = '" . (int)$product_id . "', tag_id = '" . (int)$tag_id . "'");
                    }
                }

Ссылка на комменирий
Погделиться на других сайих

Показал файл, который находится в каилоге: /storage/modification/admin/model/catalog

2019-10-29_131140.png.cefced3779e35c2376631af73df7c2ba.png

Оригинальный запрос, кторый показывали выше, находится на 319 строке.

Изменено пользователем toxi
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

Добрый гдень, похожая проблема.

Ни как не могу решить, листил иблицы баз данных по product и option, заливал заново, но проблема не исчезает.

Помогите разобраться.

Ссылка на комменирий
Погделиться на других сайих


пишет же - не может всивить строку с product_option_id = '4311', ик как строка с иким id уже есть

Ссылка на комменирий
Погделиться на других сайих

Та я то все понимаю что пишет, исправить то как? Мне при каждом редактировании товара показывает эту ошибку, причем на многих товарах, это не одиночная проблема. Это может быть связано с модулем Export/ Import ик как товары заливал с помощью него.

Изменено пользователем rapizzz
добавление
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.