2010-05-03 13 views
11

Ich benutze die fließende Schnittstelle, um ein Zend DB Select Objekt/Abfrage zu erstellen. Als Teil der Abfrage möchte ich eine beliebige Zeichenfolge wie "SELECT 'foo' AS 'Typ' FROM ..." auswählen. foo ist keine Spalte, es ist nur ein String-Literal.Auswahl beliebiger Strings mit Zend DB Select?

Wenn ich eine beliebige Zahl auswähle, funktioniert die Abfrage wie erwartet. Wenn ich es in einen String zu ändern, versucht Zend foo als eine Spalte zu behandeln, und wirft einen Fehler:

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

habe ich versucht, die Zeichenfolge in Zend_Db_Expr auf verschiedene Weise Umwickeln wie:

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

das stoppt Zend die Korrelationsnamen hinzufügt, aber es behandelt es noch als eine Säule:

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

ich fühle mich wie ich etwas offensichtlich hier nicht fehlen darf. Wie kann ich Zend sagen, dass er das nicht mehr als Spalte behandeln soll?

Antwort

11

Haben Sie vielleicht versuchen:

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

Sie müssen Anführungszeichen tatsächlich haben rund um die 'foo' in der SQL-als auch.

+0

Das war es. Vielen Dank! – wizzard

Verwandte Themen