sql >> Database >  >> RDS >> Mysql

Transactie gebruiken in php/mysql

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.



  1. Het minimaliseren van de impact van het verbreden van een IDENTITEIT-kolom - deel 1

  2. Fix Error "ORA-01789:queryblok heeft een onjuist aantal resultaatkolommen"

  3. Installeer MariaDB op een Mac

  4. Kan geen verbinding maken met lokale MySql-server via socket '/run/mysqld/mysqld.sock' (2)