【发布时间】:2015-01-09 05:24:00
【问题描述】:
我正在使用 Cakephp 3,使用 sqlserver 作为数据源服务器。我确信我的数据库连接没有问题.. 因为 home.ctp 提示我已连接到我的数据库.. 我也在使用迁移插件来创建我的表.. 似乎没有问题这些工具。但是在我烘烤我的 MVC 之后,我只得到了充满错误的页面..
例如 $bin\cake 烘焙所有测试
我没有发现任何错误,MVC 在它的特定文件夹 testController.php、testTable 等中
在浏览器中 本地主机:8765\测试
但我得到的只是不同错误的页面..我看到了
Error: SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'desc'.
SELECT * FROM (SELECT Tests.id AS [Tests__id], Tests.desc AS [Tests__desc], (ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS [_cake_page_rownum_] FROM tests Tests) _cake_paging_ WHERE _cake_paging_._cake_page_rownum_ <= :c0
左侧还有更多错误。
我认为这是因为控制器有错误的查询,或者 bake 生成的查询仅适用于 mysql。我只是想知道如何处理这个问题。有没有我忘记做的设置?请指教。我是 Cakephp 的新手,英语不是我的母语,如果我不能正确解释我的问题,我很抱歉。提前致谢。
【问题讨论】:
-
顺便说一句,我正在使用 sql server 2012
-
我对cakephp一无所知,但是这里生成的语句中的问题是由于保留关键字'desc'。如果列名是“desc1”,它可以正常工作,或者如果您需要使用保留关键字,它应该用方括号括起来作为查询中的“Tests.[desc]”。
-
感谢您的回复。这些代码和错误是由 cakephp 的 bake 命令生成的。我需要知道如何在我烘焙 MVC 时使 mysql 语句自动在 mssql 中转换。或者我只是缺少配置或其他东西。还是谢谢
标签: sql-server cakephp cakephp-3.0 query-builder cakephp-bake