Hola a todos, escribo por que tengo un problema con el uso de
Yii::app()->db->createCommand();
Her revisado la info aqui, y he construido el siguiente commando
$rows = Yii::app()->db->createCommand()
->select( array( 'SUM( `price` ) as earnings,', 'YEAR( DATE( `order`.`orderTime` ) ) as year,', 'MONTHNAME( DATE( `order`.`orderTime` ) ) as month' ) )
->from( array( 'tbl_order` `order`' ) )
->leftJoin( '`tbl_existence` `existence`', '`existence`.`orderId` = `order`.`id`' )
->where( 'DATE( `order`.`orderTime` ) BETWEEN DATE_SUB( DATE( NOW( ) ), INTERVAL 1 YEAR ) AND DATE( NOW( ) )' )
->group( array( 'YEAR( DATE( `order`.`orderTime` ) )', 'MONTH( DATE( `order`.`orderTime` ) )' ) )
->order( array( 'YEAR( DATE( `order`.`orderTime` ) ) ASC', 'MONTH( DATE( `order`.`orderTime` ) ) ASC' ) )
->queryAll();
sin embargo obtengo el siguiente error:
[indent]Missing argument 1 for CDbConnection::createCommand(), called in C:\…[/indent]
hasta donde he visto no necesito pasar algun parametro a createCommand() si quiero construir el SQL encadenando metodos pero eso es lo que me manda el error, por otro lado si construyo el SQL con un array de parametros tal como
$rows = Yii::app()->db->createCommand( array(
'select' => array( 'SUM( price ) as earnings,', 'YEAR( DATE( order.orderTime ) ) as year,', 'MONTHNAME( DATE( order.orderTime ) ) as month' ),
'from' => array( 'tbl_order order' ),
'leftJoin' => array( 'tbl_existence existence', 'existence.orderId = order.id' ),
'where' => array( 'BETWEEN', 'DATE( order.orderTime )', array( 'DATE_SUB( DATE( NOW( ) ), INTERVAL 1 YEAR )', 'DATE( NOW( ) )' ) ),
'group' => array( 'YEAR( DATE( order.orderTime ) )', 'MONTH( DATE( order.orderTime ) )' ),
'order' => array( 'YEAR( DATE( order.orderTime ) ) ASC', 'MONTH( DATE( order.orderTime ) ) ASC' ),
) )->queryAll();
el error que me envia es:
[indent]PDO::prepare() expects parameter 1 to be string, array given[/indent]
ya no se que hacer. y no encuentro casos parecidos en el foro, gracias.