Выбор произвольных строк с помощью Zend DB Select? - PullRequest
11 голосов
/ 04 мая 2010

Я использую свободный интерфейс для создания объекта / запроса Zend DB Select. В качестве части запроса я хотел бы выбрать произвольную строку, такую ​​как «SELECT» foo «AS» типа «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'

Я чувствую, что, должно быть, здесь что-то упущено. Как мне сказать Зенду прекратить рассматривать это как столбец?

1 Ответ

11 голосов
/ 04 мая 2010

Возможно, вы пробовали:

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

На самом деле вам нужно иметь кавычки вокруг 'foo' в SQL.

...