使用Zend DB Select选择任意字符串?

wiz*_*ard 11 zend-framework zend-db

我正在使用流畅的界面来创建Zend DB Select对象/查询.作为查询的一部分,我想选择一个任意字符串,例如"SELECT'foo'AS'type'FROM ...".foo不是一个列,它只是一个字符串文字.

当我选择任意数字时,查询按预期工作.当我将其更改为字符串时,Zend会尝试将foo视为列,并抛出错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'l.foo' in 'field list'
Run Code Online (Sandbox Code Playgroud)

我尝试以各种方式在Zend_Db_Expr中包装字符串,例如:

$select->columns(array('type' => new Zend_Db_Expr('foo')));
Run Code Online (Sandbox Code Playgroud)

这会阻止Zend添加相关名称,但它仍然将其视为列:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'foo' in 'field list'
Run Code Online (Sandbox Code Playgroud)

我觉得我必须在这里遗漏一些明显的东西.我如何告诉Zend停止将其视为一个列?

gna*_*arf 11

你也许尝试过:

$select->columns(array('type' => new Zend_Db_Expr("'foo'")));
Run Code Online (Sandbox Code Playgroud)

您还需要'foo'在SQL中实际引用.