Anda tidak boleh mengeksekusi banyak pernyataan menggunakan satu panggilan. Ini tidak akan berhasil jika Anda menggunakan persiapan asli dan sulit untuk melakukannya dengan benar.
Pisahkan menjadi beberapa pernyataan dan gunakan fungsi PDO untuk mendapatkan ID yang terakhir dimasukkan.
$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);