[Resolvido] Executar Varias Instruções Sql

Bom dia gente!

Alguém conhece uma maneira de executar mais de um comando SQL num statement. Pois executo uma query, crio uma tabela temporaria, depois necessito acessar os resultados dessa tabela temporário.

O erro que estou obtendo é o seguinte:

CDbCommand falhou ao executar o comando SQL: SQLSTATE[42601]: Syntax error: 7 ERROR: cannot insert multiple commands into a prepared statement

Grato,

Ricardo

Ricardo, já conseguiu resolver o seu problema?

Tentou fazer isso de que forma?

Já tentou executar seu código dentro de uma única transação?




$connection = $this->connectDb();

$transaction = $connection->beginTransaction();


// Seus comandos aqui


$transaction->commit();


// Obs: Se ocorrer algum erro durante seus comandos...


$transaction->rollBack();



Resolvi sim!! Não tentei dessa maneira, o que fiz foi executar uma instrução por vez e funcionou!! assim:





$sql = 'create temporary table entradas_temp

           select 

                sum(a.qt_incidencia_passageiro) as entradas, 

		a.dt_diario,

		a.cd_zon,

		\'entrada\' as tipo 

           from ....... ';

                

Yii::app()->db->createCommand($sql)->queryAll();


$sql = 'insert into entradas_temp

                select sum(c.qt_integracao), a.dt_diario, a.cd_zon, \'integracao\'

                from entradas_temp a

                                        

                inner join gop_seo.gop_seo_opzlint b on

                        b.cd_zon = a.cd_zon

                                                

                inner join gop_seo.gop_seo_opintgra c on

                        c.nr_zolin = b.nr_zolin and

                        c.dt_diario = a.dt_diario

                                        

                group by a.dt_diario, a.cd_zon

                                        

                order by a.dt_diario;';

                

Yii::app()->db->createCommand($sql)->queryAll();

                                        

$sql = 'select sum(a.entradas) as entradas, extract(month from a.dt_diario) as mes from entradas_temp a group by extract(month from a.dt_diario) order by mes;';

        

$result = Yii::app()->db->createCommand($sql)->queryAll();



muito obrigado pela ajuda!!

Saquei, valeu por compartilhar a solução!