Moin Community,
habe mal eine Frage an alle die sich mit PDO auskennen.
Ich habe eine Tabelle (Roottabelle) die Zugriff auf 4 Untertabellen hat.
Alle Klassen nutzen das gleiche interface und sind auch gleich aufgebaut.
Der Roottabelle übergebe ich jetzt das Request Objekt, sowie die Tätigkeit z.B. 'select', so dass diese mir jetzt ein fertiges Ergebnis zurückliefert. Bei einem Update, oder Insert triggert die Roottabelle die Untertabellen an und diese speichern die Daten zum richtigen Datensatz ab bzw. legen einen neuen an.
Soweit funktioniert auch alles. Bei einem nicht Erfolg bekomme ich ein false zurück und kann in meinem Command ( MVC ) dann die richtige Meldung ausgeben.
Jetzt wollte ich das ganze über PDO::BeginnTransaction(), Rollback, Commit händeln, so dass im Falle eines False alles rückgängig gemacht werden kann.
Laut Php.net muss ich erst eine Transaction anlegen, dann die ganzen exec durchführen, um dann bei einem Erfolg ein commit(), oder bei false rollback() durchzuführen.
Ich bekomme aber jedes mal eine Fehlermeldung das bereits eine Transaction gestartet ist.... Die BeginnTransaction() wird aber bei mir im Code nur zu Beginn angestoßen und wie laut dokumentation gewünscht mit dem Commit ausgeführt und dann dadurch ja auch zurückgesetzt
Mir kräuseln sich hier langsam die Haare...
Kann mir das jemand eventuell etwas erklären, oder habe ich das ganze falsch verstanden?
habe mal eine Frage an alle die sich mit PDO auskennen.
Ich habe eine Tabelle (Roottabelle) die Zugriff auf 4 Untertabellen hat.
Alle Klassen nutzen das gleiche interface und sind auch gleich aufgebaut.
Der Roottabelle übergebe ich jetzt das Request Objekt, sowie die Tätigkeit z.B. 'select', so dass diese mir jetzt ein fertiges Ergebnis zurückliefert. Bei einem Update, oder Insert triggert die Roottabelle die Untertabellen an und diese speichern die Daten zum richtigen Datensatz ab bzw. legen einen neuen an.
Soweit funktioniert auch alles. Bei einem nicht Erfolg bekomme ich ein false zurück und kann in meinem Command ( MVC ) dann die richtige Meldung ausgeben.
Jetzt wollte ich das ganze über PDO::BeginnTransaction(), Rollback, Commit händeln, so dass im Falle eines False alles rückgängig gemacht werden kann.
Laut Php.net muss ich erst eine Transaction anlegen, dann die ganzen exec durchführen, um dann bei einem Erfolg ein commit(), oder bei false rollback() durchzuführen.
Ich bekomme aber jedes mal eine Fehlermeldung das bereits eine Transaction gestartet ist.... Die BeginnTransaction() wird aber bei mir im Code nur zu Beginn angestoßen und wie laut dokumentation gewünscht mit dem Commit ausgeführt und dann dadurch ja auch zurückgesetzt
Mir kräuseln sich hier langsam die Haare...
Kann mir das jemand eventuell etwas erklären, oder habe ich das ganze falsch verstanden?