Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar transação em php/mysql


Basta emitir mysql_query('START TRANSACTION'); e verifique se há erros em cada uma de suas inserções. Se um deles não obtiver sucesso, emita um ROLLBACK imediatamente sem fazer nenhuma das consultas restantes. Se tudo correr bem com todos eles emita um COMMIT.

Pode ser mais fácil colocá-los em um bloco try-catch para evitar o uso de muitos níveis de aninhamento com if-else.
// START TRANSACTION
try{
    // INSERT 1
    if(failed)
        throw new Exception();

    // INSERT 2
    if(failed)
        throw new Exception();

    // INSERT 3
    if(failed)
        throw new Exception();

    // COMMIT
}
catch(Exception $e){
    // ROLLBACK
}

Você também pode dar uma olhada na extensão PDO do PHP . As transações fazem parte de seus recursos.