Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie man Transaktionen in PHP/Mysql verwendet

Geben Sie einfach mysql_query('START TRANSACTION'); ein und überprüfen Sie jeden Ihrer Einsätze auf Fehler. Wenn einer von ihnen keinen Erfolg hat, geben Sie sofort ein ROLLBACK aus, ohne eine der verbleibenden Abfragen auszuführen. Wenn bei allen alles gut geht, geben Sie ein COMMIT aus.

Es kann einfacher sein, sie in einen Try-Catch-Block zu stecken, um zu vermeiden, dass zu viele Verschachtelungsebenen mit if-else verwendet werden.

// 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
}

Vielleicht möchten Sie auch einen Blick auf die PDO-Erweiterung von PHP werfen . Transaktionen sind Teil seiner Funktionen.