sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder transaktion i php/mysql

Utfärda helt enkelt mysql_query('START TRANSACTION'); och kontrollera om det finns fel vid vart och ett av dina insatser. Om en av dem inte lyckas gör en ROLLBACK omedelbart utan att göra någon av de återstående frågorna. Om allt går bra med dem alla utfärda ett COMMIT.

Det kan vara lättare att placera dem i ett försöksfångstblock för att undvika att använda för många nivåer av häckning med 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
}

Du kanske också vill ta en titt på PHPs PDO-tillägg . Transaktioner är en del av dess funktioner.



  1. Varför är CONCAT() inte som standard som standardteckenuppsättning i MySQL?

  2. Flera räkningar med olika villkor i en enda MySQL-fråga

  3. Använda elasticsearch-river-mysql för att strömma data från MySQL-databas till Elasticsearch

  4. Hur släpper man alla användartabeller?