Ошибка 1146 что это
Перейти к содержимому

Ошибка 1146 что это

  • автор:

Ошибка «Mysql query error: (1146)» при просмотре заказа в Битрикс

13.02.2020 Бывает такое что выдает при просмотре заказа:
«Произошла ошибка, включите расширенный вывод ошибок в .settings.php»

для того чтобы понять что за ошибка у вас, вам нужно:
Откройте файл /bitrix/.settings.php и переключите «debug» = «false» в «debug» = «true»

(не забудьте потом вернуть обратно с true на false)

Возвращаемся на страницу заказа а вам тут
[Bitrix\Main\DB\SqlQueryException]
Mysql query error: (1146) Table ‘baza-data.b_sale_trading_platform’ doesn’t exist (400)
и так далее ругается на разные модули заказа (order)

Такого рода ошибка может возникнуть при обновлении ядра Битрикс.

Вам нужно зайти по адресу: /bitrix/modules/sale/lib/ и удалить файл tradingplatform.php
Его не должно быть в ядре, после этого проблема будет решена.

Появление файла могло быть после восстановления сайта из резервной копии или перезагрузки файлов ядра.
Ранее этот файл по ошибке был добавлен, но с версии sale 17.8.25 (18.0.3) его убрали.

В год мы запускаем более 150 сайтов и магазинов.

Ошибка #1146. Как исправить? Есть решение

При этом в карточке редактирования самого товара переключится на «новый раздел» можно, но тогда уже не дает зайти в саму вкладку товары. Пока опять не зайду в редактор товара и не переключу на старый режим.

Ошибка стала возникать после обновления до версии 2.7.1.727

12 комментариев

+2

Михаил Ушенин 30 ноября 2022 09:15 #

Выполните SQL-запросы в phpMyAdmin на хостинге для вашей базы данных:

CREATE TABLE `shop_presentation` ( `id` int(10) UNSIGNED NOT NULL, `parent_id` int(10) UNSIGNED DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `creator_contact_id` int(11) NOT NULL, `use_datetime` datetime DEFAULT NULL, `sort_column_id` int(10) UNSIGNED DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT '0', `sort_order` enum('asc','desc') NOT NULL DEFAULT 'asc', `view` enum('table','table_extended','thumbs') NOT NULL DEFAULT 'table', `rows_on_page` int(11) NOT NULL DEFAULT '30', `browser` varchar(64) DEFAULT NULL, `filter_id` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation` ADD PRIMARY KEY (`id`), ADD KEY `creator_contact_id` (`creator_contact_id`);

+1
Hiaolong 30 ноября 2022 13:10 #

Пустой результат

-1

replicant 30 ноября 2022 13:49 #

Вы же просто создали таблицу, которой не было, а затем сделали в ней индексы. Какие результаты ещё вы ожидали увидеть в phpmyadmin, выполняя такой запрос к базе данных? Если получилась новая пустая таблица, то это всё. Больше ничего этот запрос и не должен был делать.
Вы лучше повторите все старые действия, которые ранее приводили к ошибке, и расскажите изменилось ли что-то или всё осталось как было.

+1
Hiaolong 30 ноября 2022 18:09 #

Вроде ничего не изменилось

-1

replicant 30 ноября 2022 18:29 #

1364 — это не 1146. Уже определенно что-то изменилось. Может быть не установлен на вновь созданной таблице на колонке ID флаг AUTOINCREMENT. Надо поставить его через phpmyadmin. Полная картина запросов такая. У вас нет одного последнего запроса.

CREATE TABLE `shop_presentation` ( `id` int(10) UNSIGNED NOT NULL, `parent_id` int(10) UNSIGNED DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `creator_contact_id` int(11) NOT NULL, `use_datetime` datetime DEFAULT NULL, `sort_column_id` int(10) UNSIGNED DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT 0, `sort_order` enum('asc','desc') NOT NULL DEFAULT 'asc', `view` enum('table','table_extended','thumbs') NOT NULL DEFAULT 'table', `rows_on_page` int(11) NOT NULL DEFAULT 30, `browser` varchar(64) DEFAULT NULL, `filter_id` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation` ADD PRIMARY KEY (`id`), ADD KEY `creator_contact_id` (`creator_contact_id`); ALTER TABLE `shop_presentation` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

В итоге вот такая должна получиться структура у этой таблицы. Флаг на колонку можно поставить через интерфейс управления базой данных (Действие — Изменить) или запросом (см. выше)

+1
Hiaolong 1 декабря 2022 00:33 #

таблица как у вас на скрине есть, вроде все на месте Теперь как Вы и писали ругается на отсутствие shop_presentation_columns так же 1146 ошибка Ее по тому же принципу создавать как и shop_presentation ? В плане SQL запрос?

-1

replicant 1 декабря 2022 13:12 #

Да, создаете эту таблицу вот такими тремя запросами

CREATE TABLE `shop_presentation_columns` ( `id` int(10) UNSIGNED NOT NULL, `presentation_id` int(10) UNSIGNED NOT NULL, `column_type` varchar(64) NOT NULL, `width` int(11) DEFAULT NULL, `data` text DEFAULT NULL, `sort` int(11) NOT NULL DEFAULT 0 ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `shop_presentation_columns` ADD PRIMARY KEY (`id`), ADD KEY `presentation_id` (`presentation_id`); ALTER TABLE `shop_presentation_columns` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

+1
Hiaolong 1 декабря 2022 20:26 #

И вновь ругается уже на Table . shop_filter’ doesn’t exist code 1146 (где троеточие там название аккаунта и сайта)

+1

Михаил Ушенин 2 декабря 2022 09:46 #

Ошибка (1146, «Table ‘db_name.125059735_gjt’ doesn’t exist») при обращении к таблице MySQL

Использую Python3 и MySQLdb, пытаюсь обратиться к уже созданной таблице, которая имеет имя: ‘125059735_gjt’ создаю запрос:

tablename_value = str(((user_id) + '_gjt')) query = ("""INSERT INTO `%s` (user_id, time, description, status) VALUES (`%s`, `%s`, `%s`, 1);""") cursor.execute (query, (tablename_value, user_p, time, reason,)) 

мне выдается ошибка:

(1146, «Table ‘db_name.’125059735_gjt» doesn’t exist»)

Не могу сообразить, в чем проблема, подскажите, пожалуйста.
Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 133 133 бронзовых знака
задан 27 окт 2018 в 12:48
Илья Плосковитов Илья Плосковитов
25 4 4 бронзовых знака

А какое значение находится в tablename_value ? И что будет в консоли при print(«»»INSERT INTO `%s` (user_id, time, description, status) VALUES (`%s`, `%s`, `%s`, 1);»»» % (tablename_value, user_p, time, reason,)) ?. PS. думаю так проще будет: tablename_value = ‘<>_gjt’.format(user_id) , хотя если user_id это строка, то tablename_value = user_id + ‘_gjt’

27 окт 2018 в 12:52

Если создавать запрос «»»INSERT INTO %s (user_id, time, description, status) VALUES ( %s , %s , %s , 1);»»» % (tablename_value, user_p, time, reason,), ошибка — not enough arguments for format string

27 окт 2018 в 12:58

Это значит, что у вас в строке %s больше чем параметров, которые подставляете в % . Ну ладно, на ваш вопрос ответ есть, значит дальнейшее обсуждение бессмысленное 🙂

Ошибка 1146: что это и как ее исправить

uchet-jkh.ru

Ошибка 1146 — это сообщение, которое может появиться на вашем сайте при попытке доступа к базе данных, когда таблица, к которой вы обращаетесь, отсутствует или имеет неправильное имя. Эта ошибка является довольно распространенной и может возникать по разным причинам, включая неправильную установку или обновление CMS, ошибки в коде или несовместимости с другими плагинами или темами.

К счастью, ошибка 1146 может быть относительно легко исправлена. В первую очередь, вам нужно проверить, что таблица существует в базе данных и имеет правильное имя. Если таблицы нет, может потребоваться восстановление базы данных из резервной копии или создание новой таблицы с нужными данными.

Если же таблица существует, но имеет неправильное имя, вам потребуется исправить код, который обращается к этой таблице. В большинстве случаев это связано с неправильными настройками плагинов или шаблонов. В этом случае вы можете проверить файлы плагинов или шаблонов и найти места, где используется неправильное имя таблицы, и исправить его.

Ошибка 1146 может вызвать временные проблемы с доступом к вашему сайту, поэтому важно быстро исправить эту проблему, чтобы сохранить функциональность и удобство использования для пользователей.

Что такое ошибка 1146 на сайте?

Ошибка 1146 на сайте является одной из наиболее распространенных проблем, с которыми сталкиваются веб-разработчики и администраторы сайтов. Она возникает, когда база данных, используемая сайтом, не содержит требуемую таблицу или таблицы.

Код ошибки 1146 обычно сопровождается сообщением, указывающим на отсутствующую таблицу в базе данных. Пример сообщения об ошибке может выглядеть следующим образом: «Table ‘database_name.table_name’ doesn’t exist».

Такая ошибка может быть вызвана различными причинами:

  • Проблемы с установкой или обновлением сайта, в результате которых таблица была случайно удалена или не была создана;
  • Неправильные настройки базы данных, которые привели к ошибке при создании таблицы;
  • Повреждение базы данных или таблицы, что привело к ее недоступности.

Для исправления ошибки 1146 необходимо восстановить отсутствующую таблицу в базе данных. Используйте следующие шаги, чтобы исправить эту проблему:

  1. Создайте резервную копию базы данных, чтобы в случае неудачи можно было вернуться к предыдущему состоянию.
  2. Проверьте, есть ли в базе данных требуемая таблица. Если таблица отсутствует, переходите к следующему шагу.
  3. Восстановите таблицу из резервной копии или используйте команды SQL для создания таблицы, если у вас есть необходимая информация.
  4. Обновите конфигурационный файл сайта или скрипты, чтобы использовать новую таблицу.
  5. Проверьте функциональность сайта, убедитесь, что ошибка 1146 больше не возникает.

Правильное исправление ошибки 1146 на сайте обеспечит корректное функционирование базы данных и предотвратит возможные проблемы в будущем. В случае, если вы не уверены в своих навыках, лучше обратиться за помощью к специалистам веб-разработки или администрирования сайта.

Ошибка 1146: причины и последствия

Ошибка 1146 встречается при работе с базой данных на сайте и указывает на отсутствие таблицы с заданным именем. Эта ошибка может возникнуть по разным причинам, и имеет несколько возможных последствий.

Основные причины возникновения ошибки 1146:

  • Удаление таблицы из базы данных
  • Переименование или изменение структуры таблицы, без обновления кода сайта
  • Проблемы с импортом БД или обновлением CMS
  • Неправильное указание имени таблицы в запросе SQL

Последствия ошибки 1146:

  1. Неотображение контента на сайте, полностью или частично, в зависимости от того, какие таблицы отсутствуют
  2. Невозможность выполнения операций, связанных с базой данных, например, добавление, редактирование или удаление данных
  3. Появление ошибок и сбоев в работе сайта, т.к. многие функции и модули могут использовать данные из базы данных

Чтобы исправить ошибку 1146, необходимо:

  1. Проверить наличие таблицы с нужным именем в базе данных
  2. Восстановить таблицу в случае удаления или изменения структуры
  3. Обновить код сайта, если таблица была переименована или изменена
  4. Проверить правильность запросов SQL, указывающих на таблицу
  5. Восстановить базу данных из резервной копии

Исправление ошибки 1146 важно для нормального функционирования сайта и доступа к данным. Поэтому при появлении этой ошибки рекомендуется незамедлительно принять меры по ее устранению.

Как исправить ошибку 1146 на сайте

Ошибка 1146 обычно возникает, когда в базе данных отсутствует таблица, на которую ссылается запрос или код сайта. Это может произойти, если таблица была удалена или переименована, либо если запрос или код содержит опечатку в имени таблицы.

Чтобы исправить ошибку 1146 на сайте, следуйте следующим шагам:

  1. Проверьте наличие таблицы. Удостоверьтесь, что таблица, на которую ссылается запрос или код, существует в базе данных. Если таблицы нет, восстановите ее из резервной копии или пересоздайте ее с помощью соответствующего SQL-запроса.
  2. Проверьте правильность имени таблицы. Убедитесь, что имя таблицы в запросе или коде написано правильно и соответствует имени таблицы в базе данных. Удалите любые опечатки или проверьте, не было ли переименования таблицы.
  3. Проверьте права доступа к таблице. Убедитесь, что у пользователя, которым работает сайт или выполняется запрос, есть достаточные права доступа к таблице. Проверьте, что пользователь имеет право выполнять SELECT, INSERT, UPDATE или DELETE запросы к таблице.
  4. Обновите код сайта или запрос. Если проблема состоит в том, что код сайта или запрос содержат устаревшее имя таблицы, обновите код, заменив старое имя таблицы на новое.

После выполнения указанных выше шагов ошибка 1146 должна быть исправлена, и сайт должен работать без проблем. Если проблема не устранена, вам может потребоваться обратиться к разработчику или администратору сайта для дальнейшей диагностики и решения проблемы.

Вопрос-ответ

Что означает ошибка 1146 на сайте?

Ошибка 1146 на сайте означает, что база данных не содержит таблицу, на которую ссылается запрос. Это может произойти, если таблица была удалена или никогда не была создана.

Как исправить ошибку 1146 на своем сайте?

Для исправления ошибки 1146 на сайте необходимо создать или восстановить таблицу в базе данных. Вы можете восстановить таблицу из резервной копии или создать ее заново, и затем обновить соответствующие запросы на сайте.

Почему возникает ошибка 1146 при обновлении контента на сайте?

Ошибка 1146 может возникнуть при обновлении контента на сайте, если база данных не содержит необходимую таблицу для хранения обновленных данных. Это может быть связано с неправильной установкой или удалением таблицы.

Могу ли я восстановить таблицу после возникновения ошибки 1146 на сайте?

Да, вы можете восстановить таблицу после возникновения ошибки 1146 на сайте. Для этого вам понадобится доступ к базе данных и либо резервная копия таблицы, либо возможность создать ее заново. Затем вы сможете восстановить данные с помощью соответствующих SQL-запросов.

Что делать, если я не уверен, какая таблица вызывает ошибку 1146 на сайте?

Если вы не уверены, какая таблица вызывает ошибку 1146 на сайте, вам придется провести отладку. Вы можете проверить логи ошибок или использовать инструменты для мониторинга базы данных, чтобы выявить проблемную таблицу. Затем вы сможете принять соответствующие меры для восстановления таблицы или исправления запросов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *