Sie sollten niemals mehrere Anweisungen mit einem einzigen Aufruf ausführen. Es funktioniert nicht, wenn Sie native Präparate verwenden, und es ist schwierig, es richtig hinzubekommen.
Teilen Sie es in mehrere Anweisungen auf und verwenden Sie die Funktionen von PDO, um die zuletzt eingefügte ID zu erhalten.
$connection->beginTransaction();
$tr = $connection->prepare("INSERT INTO data(name, address, dated) VALUES('Umesh', 'Kathmandu', NOW())");
$tr->execute();
$DataID = $connection->lastInsertId();
$tr = $connection->prepare("INSERT INTO activity(data_id, activity, dated) VALUES(:DataID, 'Test Implemented', NOW() )");
$tr->execute(['DataID' => $DataID]);
$ActID = $connection->lastInsertId();
$connection->commit();
print_r($DataID, $ActID);