[MYSQL][PHP] Przykład transakcji - czy jest dobrze?

0

Mam taki kodzik:

mysql_query("START TRANSACTION")or die("blad wlaczenia transakcji");

$wynik = true;

$a=mysql_query("insert into um_platnosci (id,id_umowy,nazwa)VALUES ('','aaa','aaa') ");
if(!$a){
        die(brak("Błąd zapisu.Skontaktuj sie z administratorem.",0));
       
        } 
$b=mysql_query("insert into um_platnosci (id,id_umowy,nazwa1)VALUES ('','aaa','aaa')");
if($b==false)
        {
        $result = mysql_query("ROLLBACK") or die(mysql_error());
        die(brak("Błąd zapisu.Skontaktuj sie z administratorem.",0));
        } 

$c=mysql_query("insert into um_platnosci (id,id_umowy,nazwa)VALUES ('','aaa','aaa')");
if($c==false)
        {
        $result = mysql_query("ROLLBACK") or die(mysql_error());
        $wynik=false;
        } 



$comm=mysql_query("COMMIT")or die("blad wlaczenia transakcji");

if($wynik)
      echo 'ok';
  else
      echo 'no';

Czy jezeli mamy powiedzmy 10 insertów lub updat-ów to po każdym musimy dawać die ?
Bo w sumie jezele nie damy to polecą pytania dalej , czyli w sumie za bardzo automatyczne to nie jest, chyba ze cos zle rozumuje.
Moim zalozeniem jest to aby wszystkie zapytania sie wykonaly tylko pod warunkiem gdy ani jedno z nich nie bedzie błędne, jezeli chociazby jedno zwróci false to nic do bazy nie zapisujemy.
Jak ten kod powinien wygladac prawidlowo ?

0

Ja bym dał

$wynik = true;
$wynik = $wynik & mysql_query('zapytanie');
[...]
 if (!$wynik) {ROLLBACK + die();}
COMMIT

Kolejne zapytania sie wykonaja tylko gdy $wynik bedzie true. Gdy pojawi się pierwsze false, kolejne już nie przejdą (będzie tylko przepisywanie $wynik do $wynik :P) i na końcu wykona się rollback i jedno die().

1 użytkowników online, w tym zalogowanych: 0, gości: 1