Zend DB使用Where和Order子句的列

时间:2013-02-28 22:29:38

标签: mysql sql zend-framework

我喜欢在Where子句和Order中使用Zend中的列:

$select = $this->select();
$select = $select->where('year = ?', $year)
                 ->where('order != ?', 0)
                 ->order('order');
$rows = $this->fetchAll($select);

但是当我这样做时,我收到以下错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在第1行的“order!= 0”ORDER BY order ASC'附近使用正确的语法

为什么??!

1 个答案:

答案 0 :(得分:3)

您必须将列名order放入刻度,因为它是SQL语法的保留字。 更好的做法是永远不要像SQL中的关键字那样将列命名,因此将列order重命名为其他内容。