Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fernando Wobeto

Controle do Commit

Recommended Posts

Ola pessoal,

estou com uma dúvida em relacao ao commit do postgres.

 

Imaginamos o seguinte caso no php para inserir dados em uma tabela usando begin, commit e rollback:

 

<?
pg_query("BEGIN");
$sql = pg_query("INSERT INTO TABELA(codigo,nome)VALUES($codigo,'$nome')");
if($sql){
  pg_query("COMMIT");
  echo 1;
}else{
  pg_query("ROLLBACK");
  echo 0;
}
?>

Pois bem, dessa forma do lado do php consigo controlar pelo retorno 0 e 1, informando ao usuario se a insercao no banco foi efetuada ou nao.

Até ai tudo bem.

 

Agora imaginemos o mesmo caso, mas utilizando um while de insercoes no banco da seguinte forma:

 

pg_query("BEGIN");
while(array){
  pg_query("INSERT INTO TABELA(codigo,nome)VALUES($codigo,'$nome')");
}
pg_query("COMMIT");

Como consigo identificar com um reotno para o usuario se tudo foi registrado no banco ou nao?!?!

 

Espero ter sido claro, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá para você fazer assim:

 

$flag=0
pg_query("BEGIN");
while(array){
  $sql = pg_query("INSERT INTO TABELA(codigo,nome)VALUES($codigo,'$nome')");
  if(!$sql)
    $flag=1;
}
if(!$flag){
  pg_query("COMMIT");
  echo 1;
}else{
  pg_query("ROLLBACK");
  echo 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.