2010-05-03 12 views
11

Estoy usando la interfaz fluida para crear un objeto/consulta Zend DB Select. Como parte de la consulta, me gustaría seleccionar una cadena arbitraria, como "SELECCIONAR" foo 'AS' escribir 'FROM ...'. foo no es una columna, es solo una cadena literal.Seleccionar cadenas arbitrarias con Zend DB Select?

Cuando selecciono un número arbitrario, la consulta funciona como se esperaba. Cuando cambio en una cadena, Zend intenta tratar foo como una columna, y genera un error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'l.foo' in 'field list' 

He intentado envolver la cadena en Zend_Db_Expr de varias maneras, tales como:

$select->columns(array('type' => new Zend_Db_Expr('foo'))); 

que para Zend de sumar el nombre de correlación, pero todavía lo trata como una columna:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'foo' in 'field list' 

siento que debo estar perdiendo algo obvio aquí. ¿Cómo le digo a Zend que deje de tratar esto como una columna?

Respuesta

11

¿Usted quizás prueba:

$select->columns(array('type' => new Zend_Db_Expr("'foo'"))); 

Es necesario tener en realidad comillas alrededor de la 'foo' en el SQL también.

+0

Eso fue todo. ¡Gracias! – wizzard

Cuestiones relacionadas