这是我的SQL:
SELECT `tbl`.*, 123 AS `test` FROM `tbl` GROUP BY `test`
当我直接在MySQL中运行它时,它可以工作。但是PDO说:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'test' in 'field list'
为什么这样?怎么解决这个问题?我正在使用Zend_Db。
答案 0 :(得分:1)
从测试周围移除反引号并用单引号替换,如下所示:
SELECT `tbl`.*, 123 AS 'test' FROM `tbl` GROUP BY `test`
我不确定你是否必须在你的GROUP BY中对测试做同样的事情,但最初的改变应该照顾它。
原因是反引号(`)表示数据库的数据库,表和列。 PDO比直接在MySQL中运行时更加严格。不确定原因,但就是这样。