11

I'm trying to do this query using Zend DB select but I'm not able to do so

This is the sql query

select shopping_id,shopping_details,"friend" as type
from shopping

Notice here how I'm specifying "friend" as type and friend is not a column in the shopping table.

Now how do I do this in Zend. I have tried this but it gives me an error saying "sh.friend Column does not exist"

$select->from(array('sh'=>'shopping'),array('shopping_id','shopping_details','"friend" as type');

Any help will be appreciated thanks

Gublooo
  • 2,550
  • 8
  • 54
  • 91

3 Answers3

20

Try with Zend_Db_Expr, maybe something like:

$select->from(array('sh'=>'shopping'),
    array('shopping_id','shopping_details',
         new Zend_Db_Expr('"friend" as type'));
robertbasic
  • 4,325
  • 1
  • 27
  • 25
2
$select->from(
    array('sh'=>'shopping'),
    array('shopping_id','shopping_details','friend'=>'type', 'alias'=>'column or expression')
);
Ballsacian1
  • 17,214
  • 2
  • 26
  • 25
0

For Zend Framework 2/3 or Laminas you have to use Laminas\Db\Sql\Expression. Make sure to quote your constant with a double-quote "".

$select->from(['e' => 'experience'])
    ->columns([
        'id' => 'id',
        'value' => 'title',
        'name' => new Laminas\Db\Sql\Expression('"skill"')
    ]);

*for Zend Framework the name of the expression class is Zend\Db\Sql\Expression.

Serhii Popov
  • 3,326
  • 2
  • 25
  • 36