Gublooo
Gublooo

Reputation: 2618

Zend DB Selecting constants - columns that do not exist in table

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

Upvotes: 11

Views: 5730

Answers (3)

Serhii Popov
Serhii Popov

Reputation: 3804

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.

Upvotes: 0

Ballsacian1
Ballsacian1

Reputation: 17322

$select->from(
    array('sh'=>'shopping'),
    array('shopping_id','shopping_details','friend'=>'type', 'alias'=>'column or expression')
);

Upvotes: 2

robertbasic
robertbasic

Reputation: 4335

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'));

Upvotes: 20

Related Questions