Um dos maiores erros cometidos pelos programadores de PHP é não utilizar as transações. Reparo que em muitos casos este erro não é propositado é apenas um resultado do puro desconhecimento de uma das mais úteis funcionalidades do MySQL. Neste artigo aprenda como apenas 3 statements tornarão o seu código mais seguro, simples e prático.
O que é uma transação? É um conjunto de operações que são executadas na base de dados em conjunto, isto é, se todas forem executadas com sucesso os dados da base de dados serão alterados. Caso alguma das operações falhe as restantes operações da transação são revertidas e a base de dados não apresentará qualquer alteração nos seus dados.
Porque é útil? Um clássico exemplo é um processo de movimentar dinheiro entre dois clientes de uma instituição financeira. Imaginemos que o cliente A decide enviar 10€ ao cliente B. Neste caso seriam necessárias duas opções na base de dados: a primeira seria subtrair 10€ ao saldo do cliente A e a segunda seria somar 10€ ao saldo do cliente B.
Durante este processo o que aconteceria se por exemplo a energia falhasse? Ou se devido a alguma restrição não fosse possível somar 10€ no saldo do cliente B? Bem, num caso normal os 10€ estariam perdidos para sempre! É aqui que entram as transações – ao agrupar estas duas operações numa transação podemos ter a certeza que as duas foram executadas corretamente ou então nada acontecerá na base de dados.
No seguinte artigo encontra-se uma explicação detalhada com exemplos de como utilizar as transações:
MySQL Transactions & Why They Can’t Be Emulated in PHP
A transaction should be used whenever you need to update two or more records and want to ensure they all succeed.