Transakcje są w MySQL, ale nie działają na tabelach MyISAM (więc trzeba sobie w razie konieczności skonwertować np. na InnoDB).
Przykładowa transakcja w pseudokodzie:
Kod
query('START TRANSACTION');
try
{
// tu zapytania SQL
}
exception
{
// tu akcje do wykonania, jeśli co najmniej jedno z zapytań SQL się nie powiedzie
query('ROLLBACK');
return; // lub break
}
// tu akcje do wykonania, jeśli wszystkie zapytania się powiodą
query('COMMIT');
Oczywiście wymagana jest klasa dostępu do MySQLa zwracająca błędy jako wyjątki.