Sehen Sie sich dieses Tutorial an auf Transaktionen mit PDO.
Wickeln Sie den langlaufenden Code im Grunde ein in:
$dbh->beginTransaction();
...
$dbh->commit();
Und gemäß dieser PDO-Dokumentseite :
"Wenn das Skript endet oder wenn eine Verbindung geschlossen werden soll und Sie eine ausstehende Transaktion haben, wird PDO sie automatisch zurücksetzen. "
Sie verlieren also die ausstehende Transaktion, als das Skript abgelaufen ist.
Aber wirklich, Sie sollten dies so umgestalten, dass es nicht davon abhängt, dass das Skript am Leben bleibt.