Решено Ошибка: MySQL statement prepare error [1054]: Unknown column 'total' in 'field list'

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.2.12

AztecGUT

Проверенные
Сообщения
146
Решения
5
Реакции
38
Баллы
85
Возникла следующая ошибка с базой данных, help me с несложным вопросом. Как исправить ошибку:

Код:
XF\Db\Exception: MySQL statement prepare error [1054]: Unknown column 'total' in 'field list' in src/XF/Db/AbstractStatement.php at line 230

    XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 198
    XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 41
    XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 56
    XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 96
    XF\Db\AbstractAdapter->query() in src/XF/Repository/Thread.php at line 193
    XF\Repository\Thread->logThreadView() in src/XF/Pub/Controller/Thread.php at line 141
    XF\Pub\Controller\Thread->actionIndex() in src/XF/Mvc/Dispatcher.php at line 352
    XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 259
    XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 115
    XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 57
    XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2483
    XF\App->run() in src/XF.php at line 524
    XF::runApp() in index.php at line 20
 
Последнее редактирование модератором:
Не подскажите какой запрос в базу нужно сделать для создания данной таблицы?
Не подскажу. Ошибка слишком абстрактная, этот столбец может быть в любой таблице
Смотреть исходники по стэку или логи SQL
 
Не подскажу. Ошибка слишком абстрактная, этот столбец может быть в любой таблице
Смотреть исходники по стэку или логи SQL

А так, можете подсказать?

Код:
XF\Db\Exception: MySQL statement prepare error [1054]: Unknown column 'av.total' in 'field list' src/XF/Db/AbstractStatement.php:230



Трассировка стека

            UPDATE xf_attachment AS a
            INNER JOIN xf_attachment_view AS av ON (a.attachment_id = av.attachment_id)
            SET a.view_count = a.view_count + av.total
        
------------

#0 src/XF/Db/Mysqli/Statement.php(207): XF\Db\AbstractStatement->getException('MySQL statement...', 1054, '42S22')
#1 src/XF/Db/Mysqli/Statement.php(46): XF\Db\Mysqli\Statement->getException('MySQL statement...', 1054, '42S22')
#2 src/XF/Db/Mysqli/Statement.php(61): XF\Db\Mysqli\Statement->prepare()
#3 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#4 src/XF/Repository/AttachmentRepository.php(207): XF\Db\AbstractAdapter->query('
            UPDATE xf_a...')
#5 src/XF/Cron/Views.php(20): XF\Repository\AttachmentRepository->batchUpdateAttachmentViews()
#6 src/XF/Job/Cron.php(42): XF\Cron\Views::runViewUpdate(Object(XF\Entity\CronEntry))
#7 src/XF/Job/Manager.php(275): XF\Job\Cron->run(8)
#8 src/XF/Job/Manager.php(205): XF\Job\Manager->runJobInternal(Array, 8)
#9 src/XF/Job/Manager.php(89): XF\Job\Manager->runJobEntry(Array, 8)
#10 job.php(46): XF\Job\Manager->runQueue(false, 8)
#11 {main}


Содержимое запроса:
   
           array(4) {
  ["url"] => string(8) "/job.php"
  ["referrer"] => string(20) "http://site.ru/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
 
Добрый день. У Вас вообще существует таблица xf_attachment_view? Там 2 поля всего в ней, attachment_id
Первичный
и total.

Структура таблицы из установщика:

SQL:
CREATE TABLE `xf_attachment_view` (
  `attachment_id` int(10) UNSIGNED NOT NULL,
  `total` int(10) UNSIGNED NOT NULL
) ENGINE=MEMORY;
 
Последнее редактирование:
глупый вопрос
если бы её не существовало, то возникала бы другая ошибка
Подловили, бывает) Но думаю толку от моего "глупого" ответа будет больше, нежели от Вашего?
 
haritonoff, толку одинаково, пока никто не выяснит как люди умудрились потерять колонку в системной таблице.
Это мне конечно неведомо, причин может быть великое множество, начиная с той же глупости...
 
Добрый день. У Вас вообще существует таблица xf_attachment_view? Там 2 поля всего в ней, attachment_id
Первичный
и total.

Структура таблицы из установщика:

SQL:
CREATE TABLE `xf_attachment_view` (
  `attachment_id` int(10) UNSIGNED NOT NULL,
  `total` int(10) UNSIGNED NOT NULL
) ENGINE=MEMORY;
Здравствуйте! Таблица есть, по всей видимости одного поля нет.

Пересоздал таблицу по запросу который вы выложили, ошибок в админке более пока не наблюдается. Спасибо!

Firefox_Screenshot_2024-11-25T18-07-04.167Z(1).png
 
Последнее редактирование:
Кривой бэкап или кривое восстановление?
да, переносили спецы sweb с timeweb. Но там и я пробовал разными методами базу перенести, всё время с ошибками было, то одной таблицы нет, то другой, почему так, только таймвебу известно.
 
LexaRank, а почему Таймвебу, если вы просто заливали дамп с sweb?
А как пробовали, коль не секрет?
Переносили с таймвеба на свеб. Решил сменить хостинг.

Пробовал переносить бэкапом базы (услуга в таймвеб бесплатная), но после заливки на новый хост (sweb) этой базы как раз и сыпались ошибки в виде недостающих таблиц (я заливал созданный таймвебом бэкап), видимо у них какие то свои методы сохранения баз. Пробовал от разных дат бэкапы ставить, всё равно отсутствовали таблицы в базе. Потом решил съехать на другой хостинг а у них акция как раз, перенос сайта с помощью их специалиста и 4 месяца бесплатного хостинга, почему бы и не воспользоваться. Их спец перенёс удачно сайт, но всё же с одной таблицей была проблема описанная выше.
 
Последнее редактирование:
Переносили с таймвеба на свеб. Решил сменить хостинг.

Пробовал переносить бэкапом базы (услуга в таймвеб бесплатная), но после заливки на новый хост (sweb) этой базы как раз и сыпались ошибки в виде недостающих таблиц (я заливал созданный таймвебом бэкап), видимо у них какие то свои методы сохранения баз. Пробовал от разных дат бэкапы ставить, всё равно отсутствовали таблицы в базе. Потом решил съехать на другой хостинг а у них акция как раз, перенос сайта с помощью их специалиста и 4 месяца бесплатного хостинга, почему бы и не воспользоваться. Их спец перенёс удачно сайт, но всё же с одной таблицей была проблема описанная выше.
На таймвебе надо бекап бд делать онли ручками, а не с их бекапов, по своей практике знаю, что они битые, в моём случае приходилось таблицы с чистой XF вытаскивать, честно говоря - помогло.
В Вашем случае не знаю, можете на очередном бекапе затестить, возможно прокатит.
 
Smoking, как сотрудник сего чудо-хостинга, заявляю, что они не битые, но есть нюанс, как только в игру вступают не-InnoDB таблицы (в Ксене такие есть). И именно когда происходят попытки "скачать" сей бэкап.
И этому приколу уже больше трёх лет. С ним ничего не поделаешь.
 
Последнее редактирование:
Smoking, как сотрудник сего чудо-хостинга, заявляю, что они не битые, но есть нюанс, как только в игру вступают не-InnoDB таблицы (в Ксене такие есть). И именно когда происходят попытки "скачать" сей бэкап.
И этому приколу уже больше трёх лет. С ним ничего не поделаешь.
Это очень большая проблема на самом деле, Вы хотя бы заранее людей предупреждайте, чтобы они ручками сами выгружали БД, дабы у них не было потом проблем, ибо с такими-то бекапами и врагов не надо, потом сидеть и восстанавливать таблицы несколько часов, в лучшем случае, если они пустые, а в худшем...
 
Smoking, так вы бэкапы восстанавливайте, а не скачивайте в виде дампов. Там ж трабл только если качать как дамп.
Эти две функции работают совершенно по разному.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу