【发布时间】:2018-07-26 19:34:48
【问题描述】:
我创建了我的数据库表并像往常一样使用 CakePHP 3 烘焙,但是当我将浏览器指向某个链接时,它给了我这个错误:
错误:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'AS
Users__contact person, Users.Phoneno ASUsers__Phoneno, Users.email AS `U' 附近使用正确的语法如果您使用 SQL 关键字作为表列名,您可以在 config/app.php 中为您的数据库连接启用标识符引用。
SQL 查询:
SELECT Users.id AS `Users__id`,
Users.name AS `Users__name`,
Users.address AS `Users__address`,
Users.contact person AS `Users__contact person`,
Users.Phoneno AS `Users__Phoneno`,
Users.email AS `Users__email`
FROM users Users
LIMIT 20 OFFSET 0
【问题讨论】:
-
列名中是否真的有空格,即
Users.contact person,还是应该是下划线?如果它真的是一个空格,那么使用Users.`contact person`即在语法错误周围的回勾 -
@RiggsFolly 很好地格式化了内联代码。我永远做不到正确:)
-
@Phil 是的,它是一头野兽。您必须在您放入一组反引号的反引号上使用转义字符,即“\”。有时我可能需要很长时间才能做到这一点!
-
我还想问一下,为什么要为这些包含 2 个下划线的列名创建别名?你喜欢为难自己吗?
-
__ 是蛋糕的东西,它是模型__列。这是编写原生查询并让它们以与模型相同格式返回数据的方式。
标签: php mysql portal cakephp-3.x