Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Leite

PHP + MySQL Transaction

Recommended Posts

Olá amigos, bom dia !

 

Eu estive procurando no forum e na propria documentação do mysql, como fazer transactions. Vi varias formas, porém nenhuma funcionou aqui. Gostaria de uma ajuda.

 

Estou fazendo assim:

 

Crio a conexão e seleciono o banco de dados:

mysql_connect($host, $user, $senha) or die("Não foi possível conectar-se com o banco de dados");
mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados");

 

Até ai beleza, depois tenho em alguns pontos do programa uma série de querys que dependem uma da outra, por exemplo, numa parte de vendas onde tenho que inserir o cabeçalho e os itens em querys distintas.

 

No manual do MySQL diz que devo fazer assim:

 

mysql_query("START TRANSACTION;");

mysql_query("INSERT..");
mysql_query("INSERT..");
mysql_query("INSERT..");
mysql_query("INSERT..");


mysql_query("COMMMIT;");

ou o

mysql_query("ROLLBACK;");

se fosse o caso. Mas não funciona, segunda o documento ao iniciar enviar o comando START TRANSACTION, ele desabilita o auto commit nas querys que rodam até finalizar a rotina, mas ele ta comitando assim mesmo.

 

Outras soluções que tentei:

 

- Desabilitar o autocommit com o comando:

mysql_query("SET autocommit=0;");

antes de iniciar a transaction.

- Tentei usar o

mysql_query("BEGIN;");

- Tentei finalizar a transaction com um

mysql_query("END;")

após dar o resultado, commit ou rollback.

 

Nada funciona, existe algum outro detalhe que possa estar ocasionando este problema ?

Desde já agradeço a ajuda, abraço

 

obs.: Como podem haver rotinas especificas do PHP que podem ajudar nesse caso (creio eu), resolvi criar aqui ao inves na seção de MySQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para trabalhar com transações no MySQL + PHP utilize o mysqli ao invés de mysql. Assim ficará mysqli_query(). Mas você tem que estudar e entender o que faz o mysqli antes de usar.

Não é só trocar um pelo outro para funcionar.

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.