neotheone 0 Denunciar post Postado Fevereiro 15, 2009 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
Prog 183 Denunciar post Postado Fevereiro 15, 2009 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
hinom 5 Denunciar post Postado Fevereiro 16, 2009 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
neotheone 0 Denunciar post Postado Fevereiro 17, 2009 Oi pessoal, não to querendo usar o mysqli to querendo usar o mysql_query normal. tem como vocês postarem um exemplo funcionaç? Compartilhar este post Link para o post Compartilhar em outros sites