Ir para conteúdo

POWERED BY:

Arquivado

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

neotheone

COMMIT e ROLLBACK com MYSQL_QUERY()

Recommended Posts

Fala pessoal, tenho 2 instruções abaixo, ou seja, 2 inserts, o 2º eu estou provocando um error de proposito, o 1º está perfeito, porém eu quero que se 1 das instruções derem error eu quero q dê rollback e o que foi cadastrado seja descadastrado, como fazer funcionar?

 

<?php
$conn = mysql_connect("localhost", "root", "");

if($conn)
{
	mysql_select_db("db_ordem_judicial", $conn);
}
else
{
	echo "Error na conexão";
}

$query  = "insert into tbl_datas (id_data, dataInicio, dataFim) values(12, '2009-02-16', '2009-03-16')";

$query2 = "insert into tbl_estados (id_estado, sigla, estad) values (29, 'NY', 'New York')"; 

mysql_query("START TRANSACTION", $conn);
mysql_query($query, $conn);
mysql_query($query2, $conn);
mysql_query("COMMIT", $conn);

if(mysql_affected_rows($conn) > 0)
{
   mysql_query("COMMIT", $conn);
}
else
{
  mysql_query("ROLLBACK", $conn);
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui tem uns exemplos:

 

http://br2.php.net/manual/en/mysqli.rollback.php

 

Você pode usar try ... catch se achar mais conveniente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O MySQL possui por padrão "autocommit" ON

 

Por isso, antes de iniciar o transaction deve setar "autocommit" OFF

 

Usando mysqli é mais prático. Veja o link que o prog postou.

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.