Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser la transaction dans php/mysql

Lancez simplement mysql_query('START TRANSACTION'); et vérifiez les erreurs à chacune de vos insertions. Si l'une d'elles ne réussit pas, lancez immédiatement un ROLLBACK sans effectuer aucune des requêtes restantes. Si tout se passe bien pour chacun d'eux, lancez un COMMIT.

Il peut être plus facile de les placer dans un bloc try-catch pour éviter d'utiliser trop de niveaux d'imbrication avec 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
}

Vous pouvez également jeter un œil à l'extension PDO de PHP. . Les transactions font partie de ses fonctionnalités.