Zend Db问题来自SQL字符串的占位符

时间:2011-07-13 18:03:54

标签: zend-db placeholder

我有以下SQL

SELECT i_id AS "entity_id", "entity_1" AS "type"
FROM tbl_extensions WHERE ext = 50

返回结果和附加列“type”,其值为“entity_1”

获得与Zend_Db一样的尝试:

$db->fetchAll($db->select()
                 ->from('tbl_extensions',
                         array('entity_id' => 'i_id',
                               'type' => 'entity_1'))
                    ->where('ext = ?', 50)));

但我有以下错误:

  

消息:SQLSTATE [42S22]:找不到列:1054'字段列表'中的未知列'tbl_extensions.type'

看起来Zend试图找到一列而不是在结果中创建它。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用Zend_Db_Expr

$db->fetchAll($db->select()
    ->from('tbl_extensions',
        array(
            'entity_id' => 'i_id',
            new Zend_Db_Expr('"entity_1" AS "type"'),
        )
    )
    ->where('ext = ?', 50));