我使用fluent接口创建Zend DB Select对象/查询。作为查询的一部分,我想选择一个任意字符串,例如“SELECT'foo'AS'type'FROM ...”。 foo不是一个列,它只是一个字符串文字。
当我选择任意数字时,查询按预期工作。当我将其更改为字符串时,Zend会尝试将foo视为列,并抛出错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'l.foo' in 'field list'
我已尝试以各种方式将字符串包装在Zend_Db_Expr中,例如:
$select->columns(array('type' => new Zend_Db_Expr('foo')));
这会阻止Zend添加相关名称,但它仍然将其视为列:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'foo' in 'field list'
我觉得我必须在这里遗漏一些明显的东西。我如何告诉Zend停止将其作为一个列处理?
答案 0 :(得分:11)
您是否尝试过:
$select->columns(array('type' => new Zend_Db_Expr("'foo'")));
您还需要在SQL中的'foo'
周围实际引用。