2016-08-24 3 views
0

Когда я запускаю мою запеченный таблицу (WampServer базы данных MySQL), я получаю эту ошибку:Ошибка: SQLSTATE [42S22]: Column не найдено: 1054

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Users.user_id' in 'on clause'

If you are using SQL keywords as table column names, you can enable identifier quoting for your database connection in config/app.php.

SQL запросов:

SELECT `Bookmarks`.`id` AS `Bookmarks__id`, 
     `Bookmarks`.`user_id` AS `Bookmarks__user_id`, 
     `Bookmarks`.`title` AS `Bookmarks__title`, 
     `Bookmarks`.`description` AS `Bookmarks__description`, 
     `Bookmarks`.`url` AS `Bookmarks__url`, 
     `Bookmarks`.`created` AS `Bookmarks__created`, 
     `Bookmarks`.`modified` AS `Bookmarks__modified`, 
     `Users`.`id` AS `Users__id`, 
     `Users`.`email` AS `Users__email`, 
     `Users`.`password` AS `Users__password`, 
     `Users`.`created` AS `Users__created`, 
     `Users`.`modified` AS `Users__modified` 
FROM `bookmarks` `Bookmarks` 
    INNER JOIN `users` `Users` ON 
      `Users`.`user_id` = (`Bookmarks`.`user_id`) 
LIMIT 20 OFFSET 0 

Если вы хотите настроить это сообщение об ошибке, создайте src\Template\Error\pdo_error.ctp.

+2

Изменить это 'Users.id' вот что колонка называется – RiggsFolly

+0

А почему вы добавляете круглые скобки' ('Bookmarks'.'user_id')' они не служат никакой цели – RiggsFolly

+0

@RiggsFolly Это вопрос, связанный с CakePHP. CakePHP использует построитель запросов, который будет генерировать этот конкретный SQL, поэтому OP не слишком сильно влияет на него в отношении таких вещей, как parenthese. Иногда есть некоторые ненужные дополнительные круглые скобки, потому что компилятор не проходит лишнюю милю проверки того, требуется ли это технически. – ndm

ответ

1

В вашей таблице пользователя основной идентификатор id не user_id; поэтому вы получаете сообщение об ошибке. Попробуйте этот запрос вместо:

SELECT `Bookmarks`.`id` AS `Bookmarks__id`, 
     `Bookmarks`.`user_id` AS `Bookmarks__user_id`, 
     `Bookmarks`.`title` AS `Bookmarks__title`, 
     `Bookmarks`.`description` AS `Bookmarks__description`, 
     `Bookmarks`.`url` AS `Bookmarks__url`, 
     `Bookmarks`.`created` AS `Bookmarks__created`, 
     `Bookmarks`.`modified` AS `Bookmarks__modified`, 
     `Users`.`id` AS `Users__id`, 
     `Users`.`email` AS `Users__email`, 
     `Users`.`password` AS `Users__password`, 
     `Users`.`created` AS `Users__created`, 
     `Users`.`modified` AS `Users__modified` 
FROM `bookmarks` `Bookmarks` 
    INNER JOIN `users` `Users` ON 
      `Users`.`id` = `Bookmarks`.`user_id` 
LIMIT 20 OFFSET 0 
+0

Я думаю, что это то, что я сказал 10 минут назад в простом комментарии – RiggsFolly

+0

Я вижу, что вы также подхватили мой комментарий о скобках. – RiggsFolly

+0

Полагаю, я мог бы также дать вам преимущество, так как вы были настолько основательны, чтобы превратить их обоих в ответ, и, вероятно, вопросник не будет беспокоиться, поскольку они давно прошли. – RiggsFolly