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.
Es sollte an dieser Stelle erwähnt werden, dass ein Schließen der Datenbankverbindung einem Abbruch der Transaktion, also dem Rollback gleichkommt. Gespeichert wird nur nach ausdrücklichem Commit.