Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, como faço para executar INSERT, UPDATE e DELETE uma após a outra? Existe uma sequência lógica para que isso seja feito?
Eu tenho o seguinte bloco:
if( !empty( $insert_sql ) )
{
$insert = $conn->query( $insert_sql );
}
if( !empty( $update_sql ) )
{
$update = $conn->query( $update_sql );
}
if( !empty( $delete_sql ) )
{
$delete = $conn->query( $delete_sql );
}
É exibido o seguinte erro:
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
Entretanto, não consegui resolver, tentei usar fetchAll( ), o PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, mas nada...
Alguém sabe me dizer o que pode ser a causa e como resolver o problema?
Value!
>
Pessoal, como faço para executar INSERT, UPDATE e DELETE uma após a outra? Existe uma sequência lógica para que isso seja feito?
até existe, mas 'qual o motivo'? de você ter que executar essa sequencia ?
existem operações automaticas no banco como triggers, que podem te atender melhor, dependendo da situação.
>
isso aí tá com cara de algum ponto e virgula errado na sql .. já tive esse problema
Meu caro Andrey Knupp, também já sofri com isso, mas infelizmente não foi a situação, todas as queries estão devidamente "fechadas"... :closedeyes:
>
até existe, mas 'qual o motivo'? de você ter que executar essa sequencia ?
existem operações automaticas no banco como triggers, que podem te atender melhor, dependendo da situação.
William, o motivo é que essa sequência faz parte de um painel de gerenciamento de dados de uma tabela, sendo que o usuário pode inserir, atualizar ou apagar as linhas dessa tabela, e por isso as três operações são executadas. Mas nem sempre todas elas são executadas, e nesses casos o erro não aparece...
Eu nuca trabalhei com triggers, não faço a mínima ideia de como utilizar... :closedeyes: De que forma isso poderia me ajudar?
Valeu!
o usuário pode inserir, atualizar ou apagar as linhas dessa tabela[...]Mas nem sempre todas elas são executadas
ops.. falha minha então, eu havia entendido que você sempre executava as 3 operações. (esquece as triggers)
Faz um closeCursor no prepare ou query .. do PDO ;) é sem dúvida amigo, isso aí tá com cara de algum ponto e virgula errado na sql .. já tive esse problema