![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z obsługą bazy. Dodanie produktu to dodanie kilku rekordów do kilku tabel. I czasami coś się namiesza i w jednym z zapytań do bazy wyskakuje błąd. Ale wcześniejsze zapytania zostały wykonane. I wtedy musze ręcznie wycinać te wpisy albo ręcznie dodać te które z powodu błędów się nie wykonały.
Co zrobić aby jeśli choć jedno zapytania do bazy jest błędne (np okaże się sprzeczne z definicją kolumn, tabel) wszystkie zapytania były anulowane. Czyli albo wszystkie dobrze albo wcale. Podobnie z przenoszeniem plików wgrywanych na serwer. Jeśli inserty i updaty bazy się nie udały to nie chciałbym, żeby plik był przenoszony. Jak to zrobić? pozdro |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, zabieram się do czytania.
A czy jest odpowiednik transakcji w php? Np ileś linijek kodu ma się wykonać w całości albo wcale? Bardzo by mi to ułatwiło sprawę. pozdro |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
W samym PHP nie ma dla kodu PHP, a dla MySQL transakcje istnieją tylko dla tabel InnoDB.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
A ta obiektowa konstrukcja try-catch? Nie zapewnia tego? No bo jak mam bazę i robię ileś operacji na niej i potem chce zrobić jakieś operacje z np z plikami (czyli już nie używam bazy a tylko php) to te wszystkie mniejsze elementy mają dawać jakiś efekt. Jeśli jeden z tych elementów się nie wykona to efekt jest popsuty. No ale coś się tam wykonało i to trzeba później anulować - powrót do pierwotnego stanu. No jak to zrobić w php? Jak sobie z tym radzicie?
Co do mysql, to próbuje z tymi transakcjami ale nie bardzo mi to wychodzi. Może znacie jakieś dobre tutki na ten temat? A dwa to ograniczenie tylko do innodb mi przeszkadza. Czy w postgresie też są takie ograniczenia, że w jednym typie tabel coś działa ale inna rzecz już nie? Jakieś inne alternatywy dla mysql poza postgresem? pozdro |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat A ta obiektowa konstrukcja try-catch? Nie zapewnia tego? nieCytat Co do mysql, to próbuje z tymi transakcjami ale nie bardzo mi to wychodzi. to pokaz jak probujesz
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 12:41 |