It simple you got a typo:
replace:
$sql = "INSERT INTO `transaction`(`transactionID`, `personalID`, `description`, `cost`, `dateTime`)"
. " VALUES (:transactinID,:personalID,:description,:cost,CAST(:datetime AS DATETIME)";
with:
$sql = "INSERT INTO `transaction`(`transactionID`, `personalID`, `description`, `cost`, `dateTime`)"
. " VALUES (:transactionID,:personalID,:description,:cost,CAST(:datetime AS DATETIME)";