Что вызывает эту ошибку «Ошибка MySQL # 1054 - Неизвестный столбец»? - PullRequest
0 голосов
/ 25 февраля 2011

У меня небольшая проблема с этим запросом MySQL. Я уже использовал предложение, которое видел в другом вопросе, но все еще не работает ....

Вот код

$kernel->db->query( "UPDATE `" . TABLE_PREFIX . "users` 
                        SET `total_downs` = `total_downs` + 1 
                      WHERE `phcdl_files`.`file_author` = " . $file['file_author'] );

Что дает

Неверный SQL-запрос
Неизвестный столбец 'phcdl_files.file_author' в 'where clause' (ошибка MySQL №; 1054)

Ответы [ 3 ]

5 голосов
/ 25 февраля 2011

Это означает, что столбец file_author не существует в таблице phcdl_files. Вы, вероятно, хотите

$kernel->db->query( "UPDATE " . TABLE_PREFIX . "users SET total_downs = total_downs + 1 WHERE file_author = " . $file['file_author'] );

РЕДАКТИРОВАТЬ: см. Комментарий Байрона Уитлока выше. Обычно вы не хотите вставлять переменную непосредственно в строку запроса SQL.

1 голос
/ 09 июня 2011

где phcdl_files. file_author?

 "UPDATE `" . TABLE_PREFIX . "users` 
          SET `total_downs` = `total_downs` + 1 
          WHERE `user`.`file_author` = " . $file['file_author']

и $ file ['file_author'] должны быть из таблицы phcdl_files

1 голос
/ 25 февраля 2011

Если phcdl_files - это имя таблицы, вам нужно включить эту таблицу в запрос и выразить некоторую связь между ней и строками в TABLE_PREFIXusers, которые вы хотите обновить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...