j4nk3y: MySQLi transaction/commit/rollback

Beitrag lesen

Hey,

Ja, solange a.php nicht komplett ausgeführt wird, findet kein implizites Ende der Transaktion statt.

HM, hier würd ich es gern genau wissen, da ich mir hier unsicher bin. Also bis a.php fertig ist oder bis b.php die Datenverbindung beendet?

die Transaktion endet bei den folgenden Vorkomnissen: Explizit durch Commit oder Rollback, Implizit durch Ende der Datenbankverbindung, letzteres passiert IIRC in PHP ebenfalls implizit, wenn das Script, das die Verbindung geöffnet hat, endet. Da dein a.php ja b.php aufruft, kann es allerdings erstmal nicht vor b.php enden, solange du das nicht explizit hervorrufst (und Multthreading ist in PHP immer noch eher selten).

Super, Danke!

Was ist der selbe Datenbestand? die gleiche Datenbank oder z.b eine gleiche tabelle in der DB?

Das kann ich mit einem klaren „Ja“ beantworten. Die dritte Alternative wären übrigens die betroffenen Datensätze in den betroffenen Tabellen. Was exakt für dich zutrifft, findest du beim Stichwort Locking im Handbuch von MySQL.

Da setze ich mich gleich mal dran, Danke.

Gruß

Jo