Unknown column in field list как исправить

Learn possible fixes to the MySQL unknown column in field list error

The MySQL unknown column in field list error happens when you put a column name in your SQL script that can’t be found by MySQL.

For example, suppose you have a table named students with the following data:

+----+---------+---------+-------+--------+
| id | name    | subject | score | gender |
+----+---------+---------+-------+--------+
|  1 | Sarah   | Math    |     9 | male   |
|  2 | Natalia | Math    |     8 | female |
|  3 | Christ  | English |     5 | male   |
+----+---------+---------+-------+--------+

When you try to insert into a column that doesn’t exist in the table, MySQL will throw the said error:

INSERT INTO students(student_name) VALUES (Michael);

-- ERROR 1054 (42S22): Unknown column 'student_name' in 'field list'

The error above is because there’s no student_name column in the students table.

Next, the error can also be triggered because you didn’t use quotes for the string values as follows:

INSERT INTO students(name) VALUES (Michael);

-- ERROR 1054 (42S22): Unknown column 'Michael' in 'field list'

The value Michael must be wrapped in quotations ('' or "") or MySQL will think you are trying to insert values from another column to the target column.

The error can also be triggered by other things that make MySQL think that your column doesn’t exist.

One example is that you may trigger the error when calling a variable without the @ symbol as shown below:

SET @myVar="Hello";
SELECT myVar;

-- ERROR 1054 (42S22): Unknown column 'myVar' in 'field list'

Another thing that could trigger the error is that you’re using backticks to wrap literal values, as in the following UPDATE statement:

UPDATE students SET subject = `English` WHERE id = 1;

-- ERROR 1054 (42S22): Unknown column 'English' in 'field list'

The English value for the subject field above should be wrapped by quotations (single or double) instead of backticks.

The error can also be triggered when you have a SELECT query that has different tables between the SELECT clause and the FROM clause as shown below:

SELECT students.name FROM cities;

-- ERROR 1054 (42S22): Unknown column 'students.name' in 'field list'

This is because you are trying to query a column owned by students table from the cities table, which doesn’t match.

Finally, the error can also be caused by invisible characters lurking in your script that can’t be seen when you copy and paste it from other sources.

The only way to remove invisible characters is by rewriting the statements manually.

Summary

The tutorial above has listed the most common cause for MySQL unknown column in field list error.

There are many variations of SQL statements that can cause this error, so this error doesn’t really help you find the cause without understanding how MySQL syntax works.

I hope this tutorial has given you some guidelines on fixing the error. Good luck! 👍

Дата: 25.11.2013

Автор: Даниил Каменский , dkamenskiy (at) yandex (dot) ru

При использовании ряда CMS (например, DLE, vBulletin и др.) временами возникает ошибка mysql с номером 1054.

Текст ошибки Unknown column ‘ИМЯ_СТОЛБЦА’ in ‘field list’ в переводе означает «Неизвестный столбец ‘ИМЯ_СТОЛБЦА’ в списке полей.«. Такая ошибка возникает в том случае, если попытаться выбрать (запрос вида select) или изменить (запрос вида update) данные из столбца, которого не существует. Ошибка чаще всего возникает из-за стoронних модулей. Перечислим несколько возможных причин:

  • установлен модуль, расчитанный на более новую версию CMS, чем используемая;
  • при установке модуля не выполнились операции изменения структуры таблиц;
  • после установки сторонних модулей выполнено обновление системы, которое привело к изменению структуры таблиц; при этом модуль не был обновлен на совместимый;
  • Из резервной копии восстановлена более старая база данных, а файлы сайта остались в новой версии.

Пример №1:
Имеется таблица сотрудников подразделения.
Поля: id, фамилия, имя, отчество, год рождения, наличие высшего образования.

create table if not exists employee
(
`id` int(11) NOT NULL auto_increment primary key,
`surname` varchar(255) not null,
`name` varchar(255) not null,
`patronymic` varchar(255) not null,
`year_of_birth` int unsigned default 0,
`higher_education` tinyint unsigned default 0
) ENGINE=MyISAM;
 

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

mysql> select sex from employee where surname=’Власенко’;

ERROR 1054 (42S22): Unknown column ‘sex’ in ‘field list’

Пример №2:
Воспользуемся той же таблицей из примера 1. Если попытаться указать мужской пол у сотрудника по имени Власенко (выяснилось его имя и стало ясно, что это мужчина), то результатом будет та же ошибка:

mysql> update employee set sex=1 where surname=’Власенко’;

ERROR 1054 (42S22): Unknown column ‘sex’ in ‘field list’

Способы борьбы

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

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

Запрос на добавление:

ALTER TABLE employee ADD COLUMN sex ENUM(‘male’, ‘female’) DEFAULT ‘female’
 

Что в переводе означает «Изменить таблицу employee, добавив столбец `пол`, назначив ему тип перечисление(мужской/женский) по умолчанию мужской».

При таком добавлении столбца необходимо учитывать, что у всех записей в таблице в столбце sex появится значение по умолчанию. Если добавлять такой столбец как пол (который не может быть равен null и обязательно присутствует у каждого человека), то просто необходимо сразу же
после этого прописать нужное значение во все записи в таблице. В данном случае с добавлением столбца «пол» нужно будет поменять значение на male у всех сотрудников мужского пола.

Трудности могут возникнуть из-за того, что часто нужно самостоятельно определять тип добавляемого столбца.

Примеры:

a) Запрос:

SELECT faqname, faqparent, displayorder, volatile FROM faq where product
IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);

Ответ сервера:

Invalid SQL: SELECT faqname, faqparent, displayorder, volatile FROM faq where
product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);


MySQL Error: Unknown column ‘faqname’ in ‘field list’

Error Number: 1054

Отсутствует столбец faqname, добавим его. Логика подсказывает, что если имя — то это скорее всего символы, а не целое число или тип datetime. Количество символов заранее, конечно, неизвестно, но редко имя бывает больше чем 255 символов. Поэтому добавим столбец faqname с указанием типа varchar(255):

ALTER TABLE faq ADD faqname varchar(255)

б) Запроc:

UPDATE dle_usergroups set group_name=‘Журналисты’, allow_html=‘0’ WHERE id=‘3’;

Ответ сервера:

Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_html=’0′ WHERE id=’3′;

MySQL Error: Unknown column ‘allow_html’ in ‘field list’

Error Number: 1054

Отсутствует столбец allow_html, добавим его. Смотрим на то значение, которое туда пытается вставить запрос, видим 0. Скорее всего этот столбец может принимать два значения — разрешить/не разрешить (1 или 0), то есть однобайтное целое число вполне подойдёт. Поэтому добавим столбец allow_html с указанием типа tinyint:

ALTER TABLE faq ADD allow_html tinyint

Таким образом можно составить шаблон для «лечения» таких проблем: ALTER TABLE [a] ADD [b] [c];, где

a — имя таблицы, откуда выбираются (или где обновляются) данные;

b — имя столбца, который нужно добавить;

c — тип данных.

Примеры (во всех примерах идёт работа с таблицей dle_usergroups):

1) Запрос:

UPDATE dle_usergroups set group_name=‘Журналисты’, allow_html=‘0’ WHERE id=‘3’;

Ответ сервера:

Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_html=’0′ WHERE id=’3′;

MySQL Error: Unknown column ‘allow_html’ in ‘field list’

Error Number: 1054

Решение:

a=dle_usergroups, b=allow_html, c=tinyint, то есть

ALTER TABLE dle_usergroups ADD allow_html tinyint

Для того, чтобы выполнить исправляющий ошибку запрос, необходимо воспользоваться каким-либо mysql-клиентом. В стандартной поставке mysql всегда идёт консольный клиент с названием mysql (в windows mysql.exe). Для того, чтобы подключиться к mysql выполните команду

mysql -hНАЗВАНИЕ_ХОСТА -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ ИМЯ_БАЗЫ_ДАННЫХ,

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

В том случае, если работа происходит на чужом сервере (например, арендуется хостинг) и нет возможности воспользоваться mysql-клиентом из командной строки (не всегда хостеры представляют такую возможность), можно воспользоваться тем инструментом, который предоставляет хостер — например, phpMyAdmin, и в нём ввести нужный sql-запрос.

В то же время наиболее подходящий инструмент для работы с mysql — это MySQL Workbench — разработка создателей mysql с достаточно удобным пользовательским интерфейсом.

Если же нет возможности подключиться к mysql напрямую (например из-за ограничений файрвола), то в ряде случаев возможно удалённо подключиться к MySQL-серверу через SSH-туннель.

2) Запрос:

UPDATE dle_usergroups set group_name=‘Журналисты’, allow_subscribe=‘0’ WHERE id=‘3’;

Ответ сервера:

Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_subscribe=’0′ WHERE id=’3′;

MySQL Error: Unknown column ‘allow_subscribe’ in ‘field list’

Error Number: 1054

Решение:
a=dle_usergroups, b=allow_subscribe, c=tinyint, то есть

ALTER TABLE dle_usergroups ADD allow_subscribe tinyint

3) Запрос:

SELECT faqname, faqparent, displayorder, volatile FROM faq where product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);

Oтвет сервера:

InvalidSQL: SELECT faqname, faqparent, displayorder, volatile FROM faq where product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);

MySQL Error: Unknown column ‘faqname’ in ‘field list’

Error Number: 1054

Решение:
a= faq, b=faqname, c=varchar(255), то есть

ALTER TABLE faq ADD faqname varchar(255)

Результат

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

Источник: webew.ru

Дата публикации: 25.11.2013

© Все права на данную статью принадлежат порталу SQLInfo.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в бумажных изданиях допускается только с разрешения редакции.

Error: Code 1054. Unknown column 'U2.id_naslov' in 'field list' gets thrown on
this simple query in MySQL Workbench:

UPDATE krneki_1 AS U1, krneki_2 AS U2 
SET U1.id_naslov = U2.id_naslov
WHERE (U2.id_zaposlen = U1.id_naslovi_zaposleni)

I have searched and read other posts on the net but nothing helps…

I guess it’s a trivial solution but I just can’t see it.

This kind of error never came up on TSQL (sql server).

Table krneki_2 was created by Mysql workbench via data import (create new table) later on when this error occurred I also altered the number fields to smallint just to see if it helps… but… nothing.

Result of SHOW CREATE TABLE krneki_2:

       Table: krneki_2 
Create Table: CREATE TABLE `krneki_2` 
( `id` smallint(6) NOT NULL AUTO_INCREMENT, 
  `id_naslov` smallint(6) NOT NULL, 
  `id_zaposlen` smallint(6) NOT NULL, 
  PRIMARY KEY (id) 
) ENGINE=InnoDB AUTO_INCREMENT=204 DEFAULT CHARSET=utf8 

1 row in set (0.00 sec)

Result of SHOW CREATE TABLE krneki_1:

       Table: krneki_1
Create Table: CREATE TABLE `krneki_1` (
  `id_naslovi_zaposleni` smallint(6) NOT NULL AUTO_INCREMENT,
  `id_naslov` smallint(6) DEFAULT NULL,
  `id_zaposleni` smallint(6) DEFAULT NULL,
  `id_aktiven` tinyint(4) DEFAULT '0',
  `cas_vnosa` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id_naslovi_zaposleni`)
) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

Results from information_schema, specifically from this query suggested in comments:

select
  table_catalog, table_schema, table_name, column_name, ordinal_position
from information_schema.columns
where table_name like '%krneki_1%' and column_name like '%naslov%' ;

Results for krneki_1 and naslov:

+---------------+--------------+-------------+----------------------+------------------+
| table_catalog | table_schema | table_name  | column_name          | ordinal_position |
+---------------+--------------+-------------+----------------------+------------------+
| def           | hq_db        | krneki_1    | id_naslovi_zaposleni |                1 |
| def           | hq_db        | krneki_1    | id_naslov            |                2 |
+---------------+--------------+-------------+----------------------+------------------+
2 rows in set (0.00 sec)

Results for krneki_2 and naslov:

+---------------+--------------+-------------+--------------+------------------+
| table_catalog | table_schema | table_name  | column_name  | ordinal_position |
+---------------+--------------+-------------+--------------+------------------+
| def           | hq_db        | krneki_2    | id_naslov    |                2 |
+---------------+--------------+-------------+--------------+------------------+
1 row in set (0.00 sec)

Results for krneki_2 and zaposlen:

+---------------+--------------+-------------+--------------+------------------+
| table_catalog | table_schema | table_name  | column_name  | ordinal_position |
+---------------+--------------+-------------+--------------+------------------+
| def           | hq_db        | krneki_2    | id_zaposlen  |                3 |
+---------------+--------------+-------------+--------------+------------------+
1 row in set (0.00 sec)

Further digging, as suggested:

select 
  table_catalog, table_schema, table_name, column_name, ordinal_position,         
  char_length(column_name) as cl, length(column_name) as l
from information_schema.columns 
where table_name = 'krneki_2' ;

Results for krneki_2:

+-------------+------------+----------+-----------+----------------+---+---+-------------+
|table_catalog|table_schema|table_name|column_name|ordinal_position| cl| l | column_type |
+-------------+------------+----------+-----------+----------------+---+---+-------------+
| def         | hq_db      | krneki_2 |id         |              1 |  2|  2| smallint(6) |
| def         | hq_db      | krneki_2 |id_naslov  |              2 | 10| 12| smallint(6) |
| def         | hq_db      | krneki_2 |id_zaposlen|              3 | 11| 11| smallint(6) |
+-------------+------------+----------+-----------+----------------+---+---+-------------+
3 rows in set (0.00 sec)

Results for krneki_1:

+-------------+------------+----------+--------------------+----------------+--+--+-----------+
|table_catalog|table_schema|table_name| column_name        |ordinal_position|cl| l|column_type|
+-------------+------------+----------+--------------------+----------------+--+--+-----------+
| def         | hq_db      | krneki_1 |id_naslovi_zaposleni|              1 |20|20|smallint(6)|
| def         | hq_db      | krneki_1 |id_naslov           |              2 | 9| 9|smallint(6)|
| def         | hq_db      | krneki_1 |id_zaposleni        |              3 |12|12|smallint(6)|
| def         | hq_db      | krneki_1 |id_aktiven          |              4 |10|10|tinyint(4) |
| def         | hq_db      | krneki_1 |cas_vnosa           |              5 | 9| 9|datetime   |
+-------------+------------+----------+--------------------+----------------+--+--+-----------+
5 rows in set (0.00 sec)

krneki_2 with HEX:

+-------------+------------+----------+-----------+----------------+--+--+-------------------------+
|table_catalog|table_schema|table_name|column_name|ordinal_position|cl|l | hex                     |      
+-------------+------------+----------+-----------+----------------+--+--+-------------------------+ 
| def         | hq_db      | krneki_2 |id         |              1 | 2| 2|6964                     |   
| def         | hq_db      | krneki_2 |id_naslov  |              2 |10|12|EFBBBF69645F6E61736C6F76 |   
| def         | hq_db      | krneki_2 |id_zaposlen|              3 |11|11|69645F7A61706F736C656E   |  
+-------------+------------+----------+-----------+----------------+--+--+-------------------------+   
3 rows in set (0.00 sec)  

krneki_1 with HEX:

+-------------+------------+----------+--------------------+----------------+--+--+----------------------------------------+
|table_catalog|table_schema|table_name|column_name         |ordinal_position|cl| l|hex                                     |              
+-------------+------------+----------+--------------------+----------------+--+--+----------------------------------------+
| def         | hq_db      | krneki_1 |id_naslovi_zaposleni|              1 |20|20|69645F6E61736C6F76695F7A61706F736C656E69|
| def         | hq_db      | krneki_1 |id_naslov           |              2 | 9| 9|69645F6E61736C6F76                      |
| def         | hq_db      | krneki_1 |id_zaposleni        |              3 |12|12|69645F7A61706F736C656E69                |
| def         | hq_db      | krneki_1 |id_aktiven          |              4 |10|10|69645F616B746976656E                    |
| def         | hq_db      | krneki_1 |cas_vnosa           |              5 | 9| 9|6361735F766E6F7361                      |
+-------------+------------+----------+--------------------+----------------+--+--+----------------------------------------+
5 rows in set (0.00 sec)

Recently we got request from our customer that something is going wrong with their database and they’re are getting strange errors after each insert or update to specific table. The strangeness caused by «Unknown column ‘column-name’ in ‘field list'» message while this column was existing in this table. Our investigation shown that this was caused by trigger on the table they were trying to do the insert/update. This trigger did the insert to another table where the mentioned column didn’t exist.

Let me show you example:

create test DB and 2 test tables:

create database test;
use test;

create table t1 (field1 int auto_increment not null, field2 varchar(10), field3 varchar(10), primary key(field1)) engine=innodb;
create table t2 (field1 int, field2 varchar(10)) engine=innodb;

Then create a new insert trigger on t1 table:

delimiter ##

create trigger insert_on_t1_to_t2
 after insert
 on t1 for each row
begin
 insert into t2 (field1,field2,field3) values (new.field1, new.field2, '1');
end##

delimiter ;

Insert to t1 table:

mysql> insert into t1(field2,field3) values("val2","val3");
ERROR 1054 (42S22): Unknown column 'field3' in 'field list'

From the query text and the output above it’s pretty easy to assume that mysql is complaining about `c` column in `t1` table. But in fact it’s complaining about `c` column in `t2` table because this query is running trigger and does insert into `t2` tables and its `(a,b,c)` columns but the latter column doesn’t exist in `t2` table.

One of the simplest way to check if it’s so is show triggers and grep result by table and column name:

mysql> pager grep -E "t1|field3"
PAGER set to 'grep -E "t1|field3”'

mysql> show triggers from test like 't1'G
             Trigger: insert_on_t1_to_t2
               Table: t1
 insert into t2 (field1,field2,field3) values (new.field1, new.field2, '1');
1 row in set (0.00 sec)

To solve the error I will need either rewrite trigger and remove `field3` column from insert command or alter table `t2` and add column `field3`.

In my test I did rewrite trigger:

drop trigger insert_on_t1_to_t2;

delimiter ##

create trigger insert_on_t1_to_t2
 after insert
 on t1 for each row
begin
 insert into t2 (field1,field2) values (new.field1, new.field2);
end##

delimiter ;

Now the insert works:

mysql> select * from t1;
+--------+--------+--------+
| field1 | field2 | field3 |
+--------+--------+--------+
|      2 | val20  | val30  |
|      3 | val21  | val31  |
+--------+--------+--------+
2 rows in set (0.00 sec)

mysql> select * from t2;
+--------+--------+
| field1 | field2 |
+--------+--------+
|      2 | val20  |
|      3 | val21  |
+--------+--------+
2 rows in set (0.00 sec)

Summary: if you’re seeing error like this one that some of the column doesn’t exist in the table but in fact it exists then one of the culprit could be a trigger on this table.

13 / 12 / 9

Регистрация: 16.04.2012

Сообщений: 979

1

07.03.2015, 20:43. Показов 23287. Ответов 2


То ли я дурак, то ли лыжи не едут…

Ошибка #1054 - Unknown column in 'field list'

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



7 / 7 / 6

Регистрация: 17.06.2014

Сообщений: 36

07.03.2015, 20:53

2

Лучший ответ Сообщение было отмечено ChildOfFlowers как решение

Решение

Заключите слово qwerty в скобки «qwerty»



2



13 / 12 / 9

Регистрация: 16.04.2012

Сообщений: 979

07.03.2015, 21:01

 [ТС]

3

li4n0st, спасибо, сработало… просто в других случаях кавычки были необязательны, поэтому я тут так лохонулся. Плохо, когда в языке нет определённости.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

07.03.2015, 21:01

Помогаю со студенческими работами здесь

Unknown column ‘uid’ in ‘field list’!!!
Решил перенести свой сайт с ucoz на DLE, скачал скрипт. Конвертируется всё кроме форума, хотя…

Unknown column ‘Химия’ in ‘field list’
Доброго времени суток, заранее спасибо всем людям, которые хотят помочь, тут на рисовалась проблема…

1054 — Unknown column
Подскажите, пожалуйста, почему у меня в запросе INSERT INTO `table1` (title, date, text) VALUES…

#1054 — Unknown column ‘X’ in ‘on clause’
Объясните пожалуйста, как правильно сделать последний джоин?

SELECT
posts.id,

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

3

0 Пользователей и 1 Гость просматривают эту тему.

  • 15 Ответов
  • 6639 Просмотров

После переезда с Joomla 1.5 на 3 в отдельных статьях (материалах) появилась такая ошибка.

1054 — Unknown column ‘c.deleted’ in ‘field list’ SQL=SELECT c.id, c.parent, c.object_id, c.object_group, c.userid, c.name, c.username, c.title, c.comment , c.email, c.homepage, c.date, c.date as datetime, c.ip, c.published, c.deleted, c.checked_out, c.checked_out_time , c.isgood, c.ispoor , 1 as voted , case when c.parent = 0 then unix_timestamp(c.date) else 0 end as threaddate, » AS object_title, » AS object_link, 0 AS object_access, 0 AS object_owner FROM uns4o_jcomments AS c WHERE c.object_id = 3 AND c.object_group = ‘com_content’ AND c.published = 1 ORDER BY c.parent, c.date ASC

Сталкивался кто с таким?
Причем часть материалов открывается нормально. При открытии других ошибка.

Методом «тыка» выяснил что виноват jcomments. Его удаление «исправило» ситуацию. но как лечить?

P,s, Перенесите тему в раздел jcomments

Проблема решается очень просто.
Вероятней всего переезд делали компонентом SP Upgrade.
После его работы в таблице префикс_jcomments нет поля deleted, его необходимо добавить в таблицу либо пересозданием таковой

CREATE TABLE IF NOT EXISTS `префикс_jcomments` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`thread_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`path` VARCHAR(255) NOT NULL DEFAULT '',
`level` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`object_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`object_group` VARCHAR(255) NOT NULL DEFAULT '',
`object_params` TEXT NOT NULL DEFAULT '',
`lang` VARCHAR(255) NOT NULL DEFAULT '',
`userid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`name`VARCHAR(255) NOT NULL DEFAULT '',
`username`VARCHAR(255) NOT NULL DEFAULT '',
`email` VARCHAR(255) NOT NULL DEFAULT '',
`homepage` VARCHAR(255) NOT NULL DEFAULT '',
`title` VARCHAR(255) NOT NULL DEFAULT '',
`comment` TEXT NOT NULL DEFAULT '',
`ip` VARCHAR(39) NOT NULL DEFAULT '',
`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`isgood` SMALLINT(5) NOT NULL DEFAULT '0',
`ispoor` SMALLINT(5) NOT NULL DEFAULT '0',
`published` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`subscribe` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
`source` VARCHAR(255) NOT NULL DEFAULT '',
`source_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`checked_out` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`editor` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY  (`id`),
KEY `idx_userid` (`userid`),
KEY `idx_source` (`source`),
KEY `idx_email` (`email`),
KEY `idx_lang` (`lang`),
KEY `idx_subscribe` (`subscribe`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_object` (`object_id`, `object_group`, `published`, `date`),
KEY `idx_path` (`path`, `level`),
KEY `idx_thread` (`thread_id`)
) DEFAULT CHARSET=utf8;

либо добавлением в него поля deleted

ALTER TABLE `префикс_jcomments` ADD `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0';

Проблема решается очень просто.

В моем случае заменой компонента на Komento, более гибкий «современный». Теперь его еще прикрутить к JoomGallery и DJ-Classifieds осталось.

Уважаемые гуру— просвятите пожалуйста в вопросе:

обнаружина ошибка при попытке создать модуль поиска

 1054 Unknown column ‘name_ru-RU’ in ‘field list’ SQL=SELECT `name_ru-RU` as name, category_id, category_parent_id, category_publish FROM `bd06p_jshopping_categories` where access IN (1,1,2,3) ORDER BY category_parent_id, ordering
после русификации

1. я установила шаблон G2ShopMy от smartaddons он был на версии Joomla 3.3.3
2. русифицировала панель управления и сайт с помошью ru-RU_joomla_lang_full_3.3.6v1
3. потом перешла Joomla 3.4.1 (в надежде что что то изменится)

увы чуда не произошло….

спасибо за ответы!)

Ну, вот и я столкнулся с той же проблемой…

Мигрировал с J1.5 на J3.9 с помощью SP Upgrade. Переносил только материалы, категории и меню. Физически все перенеслось, но при переходе на некоторые материалы появляется ошибка:
1054 Unknown column ‘category_id’ in ‘field list’

Jcomments отключил. Результат тот же самый…
Ошибка остается даже если отключить ЧПУ.

Прошу помощи у тех, кому удалось решить данную проблему.

Заранее спасибо.

Вообще мигратором лучше не пользоваться. В вашем случае в миграторе вы переносите только материалы, т.к. таблицы баз данных различаются сильно. С 2.5 перенести проще, они почти идентичные. Касательно JComments — его нет смысла мигрировать. Просто копируете таблицы из одной базы в другую, затем устанавливаете сам компонент, он автоматом эти таблицы подхватит. 1054 Unknown column ‘category_id’ in ‘field list’ — говорит о том, что отсутствует колонка в таблице. Создайте ее. Возможно, посыпятся другие ошибки. Попробуйте в админке нажать «Исправить БД», иногда помогает. Нет — тогда создавайте колонки вручную и самостоятельно переносите данные из старой базы. Возможно, они вообще не нужны — такое тоже бывает.
 

Записан

Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг

Вообще мигратором лучше не пользоваться. В вашем случае в миграторе вы переносите только материалы, т.к. таблицы баз данных различаются сильно. С 2.5 перенести проще, они почти идентичные. Касательно JComments — его нет смысла мигрировать. Просто копируете таблицы из одной базы в другую, затем устанавливаете сам компонент, он автоматом эти таблицы подхватит. 1054 Unknown column ‘category_id’ in ‘field list’ — говорит о том, что отсутствует колонка в таблице. Создайте ее. Возможно, посыпятся другие ошибки. Попробуйте в админке нажать «Исправить БД», иногда помогает. Нет — тогда создавайте колонки вручную и самостоятельно переносите данные из старой базы. Возможно, они вообще не нужны — такое тоже бывает.

Самое странное то, что на самом деле после самой миграции все материалы открывались. Это когда я уже стал компоненты ставить эта фигня началась…

Придется с нуля миграцию проводить…

А как понять в какой именно таблице этих колонок не хватает?

А как понять в какой именно таблице этих колонок не хватает?

Так в самом сообщении написано. Переведите его с английского на русский, получиться примерно следующее: 1054 Неизвестный столбец ‘category_id’ в ‘field list’. То есть в запросе к базе присутствует обращение к столбцу, которого нет. Вот и смотрите таблицу field list, что в ней не так.

Записан

Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг

смотрите таблицу field list, что в ней не так

Не совсем так: field list здесь — буквально «список столбцов», а не таблица.

Записан

Не будь паразитом, сделай что-нибудь самостоятельно!

В обще наверное что бы быстрей ошибки такого рода находить можно в index.php — тот что в корне
в место

Вставить такое

try
{

$app->execute();
}
catch( Exception $e )
{
// Executed only in PHP 5, will not be reached in PHP 7
echo 'Exception: ' , $e->getMessage(), "n";
echo '<pre>'; print_r( $e ); echo '</pre>' . __FILE__ . ' ' . __LINE__;
die(__FILE__ .' '. __LINE__ );
}
catch( Throwable $e )
{
// Executed only in PHP 7, will not match in PHP 5
echo 'Throwable: ' , $e->getMessage(), "n";
echo '<pre>'; print_r( $e ); echo '</pre>' . __FILE__ . ' ' . __LINE__;
die(__FILE__ .' '. __LINE__ );
}

и ошибки на максимам в админке !
в верхней записи будет файл и строка где была ошибка! )
Но это на примере Joomla — !! )))

try
{

$app->execute();
}
catch( Exception $e )
{
// Executed only in PHP 5, will not be reached in PHP 7
echo ‘Exception: ‘ , $e->getMessage(), «n»;
echo ‘<pre>’; print_r( $e ); echo ‘</pre>’ . __FILE__ . ‘ ‘ . __LINE__;
die(__FILE__ .’ ‘. __LINE__ );
}
catch( Throwable $e )
{
// Executed only in PHP 7, will not match in PHP 5
echo ‘Throwable: ‘ , $e->getMessage(), «n»;
echo ‘<pre>’; print_r( $e ); echo ‘</pre>’ . __FILE__ . ‘ ‘ . __LINE__;
die(__FILE__ .’ ‘. __LINE__ );
}

Получил длинюююющую ошибку. Начало такое:

JDatabaseExceptionExecuting Object
(
    [query:JDatabaseExceptionExecuting:private] => INSERT INTO k2dq1_jcomments_objects SET   `object_id` = 9418, `object_group` = 'com_content', `category_id` = 48, `lang` = 'ru-RU', `title` = 'Городские каналы пожаловались Володину на возможную плату операторам за появление на 22 кнопке', `link` = '/index.php?option=com_content&view=article&id=9418:gorodskie-kanaly-pozhalovalis-volodinu-na-vozmozhnuyu-platu-operatoram-za-poyavlenie-na-22-knopke&catid=48:terra-tv-news&Itemid=100016', `access` = 1, `userid` = 75, `expired` = 0, `modified` = '2019-11-04 15:52:00'
    [message:protected] => Unknown column 'category_id' in 'field list'
    [string:Exception:private] =>
    [code:protected] => 1054
    [file:protected] => /var/www/swtest.ru/data/www/swtest.ru/libraries/joomla/database/driver/mysqli.php
    [line:protected] => 665
    [trace:Exception:private] => Array

Я так и не понял, в какой таблице ошибка (((

Я так и не понял, в какой таблице ошибка

k2dq1_jcomments_object

k2dq1_jcomments_object

Блин, я тупой… Спасибо большое! Черт, значит все же в jcomments проблема  :(

Всем спасибо! Помог вот такой SQL запрос:

ALTER TABLE `k2dq1_jcomments_objects` ADD `category_id` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0'

Ну наконец то — Хотя и так ясно с начала было !
Удачи!!

Понравилась статья? Поделить с друзьями:
  • Unknown authentication error ets 2
  • Unknown audio playback error youtube
  • Unknown amd processor tmnt как исправить
  • Unknown amd processor prince of persia warrior within как исправить
  • Unix get error message