42S22 SQL错误:找不到列,为什么?

时间:2010-05-20 13:55:56

标签: php zend-framework

这是我的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。

1 个答案:

答案 0 :(得分:1)

从测试周围移除反引号并用单引号替换,如下所示:

SELECT `tbl`.*, 123 AS 'test' FROM `tbl` GROUP BY `test`

我不确定你是否必须在你的GROUP BY中对测试做同样的事情,但最初的改变应该照顾它。

原因是反引号(`)表示数据库的数据库,表和列。 PDO比直接在MySQL中运行时更加严格。不确定原因,但就是这样。