sql >> Databáze >  >> RDS >> Mysql

Jak používat transakci v php/mysql

Jednoduše zadejte mysql_query('START TRANSACTION'); a zkontrolujte chyby u každé z vašich příloh. Pokud jeden z nich neuspěje, okamžitě vydejte ROLLBACK, aniž byste provedli jakýkoli ze zbývajících dotazů. Pokud vše půjde dobře se všemi, vydejte COMMIT.

Může být snazší je umístit do bloku try-catch, abyste se vyhnuli použití příliš mnoha úrovní vnoření s 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
}

Můžete se také podívat na rozšíření PDO PHP . Transakce jsou součástí jeho funkcí.



  1. Mysql dotaz nepoužívá index, když jsou v WHERE proměnné

  2. Počítání všech příspěvků patřících do kategorie A jejích podkategorií

  3. MySQL vybere jedno pole z tabulky WHERE podmínka ve více řádcích

  4. připojte R k MySQL s RODBC pomocí dsn