$pstm = $cn->prepare($query);// creo uno statement per eseguire query
$pstm->bindParam(1,$txt,PDO::PARAM_STR);
$pstm->bindParam(2,$autore,PDO::PARAM_STR);
$pstm->execute();

non capisco perchè l'oggetto da $cn diventa $pstm, non è impossibile, a seconda di come è fatta la classe ..... però gli darei un occhiata perchè è strano come modus operandi.

e poi ci sarebbe anche questa:

$cn = getConnessioneDB();

se è un oggetto dovrebbe essere

$cn = new getConnessioneDB();

però anche qui è possibile che ci sia una funzione che restituisce l'oggetto ... anche se mi sembra strano