Bạn không bao giờ nên thực hiện nhiều câu lệnh bằng một lệnh gọi. Nó sẽ không hoạt động nếu bạn sử dụng chuẩn bị gốc và rất khó để làm đúng.
Chia nó thành nhiều câu lệnh và sử dụng các chức năng của PDO để lấy ID được chèn lần cuối.
$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);