Geef eenvoudig mysql_query('START TRANSACTION');
en controleer op fouten bij al uw inserts. Als een van hen er niet in slaagt, geef dan onmiddellijk een ROLLBACK uit zonder een van de overige vragen uit te voeren. Als alles goed gaat met ze allemaal, geef dan een COMMIT uit.
Het is misschien makkelijker om ze in een try-catch-blok te plaatsen om te voorkomen dat er te veel niveaus van nesting worden gebruikt met 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
}
U kunt ook een kijkje nemen in PHP's BOB-extensie . Transacties maken deel uit van de functies.