Zum Inhalt springen

[PHP5] Mysql-Transaktionen in der Objektorientierung


Empfohlene Beiträge

hu,

folgendes Problem:

ich habe einige Klassen die sich um Datenbank- und Dateisystem kümmern. Da kann es vorkommen das:

Klasse 1 methode "delete":

->Transaktion Start

->select * from sub where parent_id=1

->->Klasse2->delete(sub_id);

->delete from parent where parent_id=1

->transaktion commit


class Klasse2 methode "delete"

->transaktion start

-> datei(en) löschen

->delete from sub where sub_id=$subid

->transaktion commit

ich hoffe das ist verständlich das Problem: ich habe jetzt
-> Transaktion start

-> select...

->-> transaktion start

->-> delete...

->-> transaktion commit

// dies evtl. mehrfach

-> delete ...

-> transaktion commit

also commited er die Transaktion zu früh, weil da ein commit zwischen kommt, oder irre ich ?

Alle SQL-Befehle laufen vorher nochmal durch eine Zentrale mysql-Klasse. Die überlegung ist, dort mitzuschneiden, wieviele transaktionen gestartet werden, und die entsprechende Anzahl von Commits zu ignorieren..... aber ist das sinnvoll ?

Edit: das Problem: wie halte ich fest, welches Commit zu welchem start gehört. Nicht das ich im Fehlerfall ein Commit zu viel ignoriere.

was denkt ihr / alternative ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab das jetzt so gemacht, das Mysql-Statements an die transaktion gegeben werden, Commit werden anschließend nur akzeptiert, wenn sie von dem gleichen transaktions-Objekt kommen wie das Start.

Rollbacks kann jedes Transaktionsobjekt abliefern, aber es wird auch automatisch mit dem rollback eine exception geschmissen :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...