<?php $SQL1 = \"INSERT INTO ...\"; $SQL2 = \"UPDATE ...\"; $SQL3 = \"UPDATE ...\"; { //Nie ma błędu, zatwierdzam transakcję } else { //Wystąpił błąd bazy MySQL: } ?>
Czy taka konstrukcja jest poprawna?
Chodzi mi o to, czy jeśli błąd wystąpi na etapie Operacji1, a Operacja2 i
Operacja3 się powiodą, to czy mysql_error() również zwróci kod błędu?
Ewentualnie - jak inaczej to oprogramować?
I druga rzecz... Transakcja jest traktowana przez bazę w kontekście aktualnego identyfikatora połączenia z bazą, prawda? Ale którego? Każdy mój juzer łączy się z bazą z użyciem (z punktu widzenia bazy) tego samego loginu i hasła. W rezultacie zapytanie o CONNECTION_ID() daje za każdym razem inny rezultat, ale:
<?php ?>
zwraca mi w każdym przypadku Resource id #2 - dlaczego? Czy mogę w ten sposób bezpiecznie używać transakcji, nie martwiąc się, ze jeden juzer wycofa transakcję drugiego?
Pozdrawiam,
K