utilisation des transactions pour des insert et/ou des update avec pdo
Bonsoir,
voici le principe tel que je l'ai compris :
Code:
1 2 3 4 5 6 7 8 9 10
| //on suppose que la connexion est établie et que $dbh est une instance pdo
try {
$dbh->startTransaction();
$sql = "INSERT....";
$dbh->query($sql);
$dbh->commit();
}
catch (\Exception $e) {
$dbh->rollback();
} |
Si on a plusieurs requêtes à effectuer mais qu'on veut soit toutes les exécuter, soit tout annuler, alors peut-on faire ça ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| //on suppose que la connexion est établie et que $dbh est une instance pdo
try {
$dbh->startTransaction();
$sql1 = "INSERT....";
$dbh->query($sql1);
$sql2 = "INSERT....";
$dbh->query($sql2);
$dbh->commit(); // seulement un unique commit à la fin
}
catch (\Exception $e) {
$dbh->rollback();
} |