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
Page 1 of 1
[Resolvido] Executar Varias Instruções Sql
#2
Posted 14 February 2013 - 06:44 AM
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?
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();
#3
Posted 14 February 2013 - 06:52 AM
Lothor, on 14 February 2013 - 06:44 AM, said:
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?
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!!
Share this topic:
Page 1 of 1