【发布时间】:2016-08-24 09:54:09
【问题描述】:
当我运行我的烘焙表(WampServer MySQL 数据库)时,我收到此错误:
错误:SQLSTATE[42S22]:找不到列:1054 'on 子句'中的未知列 'Users.user_id'
如果您使用 SQL 关键字作为表列名,您可以在 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。
【问题讨论】:
-
把它改成
Users.id这就是这个列的名字 -
你为什么要为
(Bookmarks.user_id)添加圆括号他们没有用 -
@RiggsFolly 这是一个与 CakePHP 相关的问题。 CakePHP 使用一个查询生成器来生成特定的 SQL,因此 OP 在括号放置等方面对其没有太大影响。有时会出现一些不必要的额外括号,因为编译器不会额外检查它们是否在技术上是必需的。
-
您的关联和/或表主键配置很可能是错误的,请使用
BookmarksTable和UsersTable类的相应initialize()方法代码更新您的问题。
标签: mysql cakephp-3.0 wampserver