Ciao,
non c'entra la definizione della variabile $db.
$db è la variabile che definisco nella inizializzazione della connessione a db e quando la uso devo inizializzare come globale.
Il problema è piuttosto che nel catch non ci entra nemmeno.
sembra come che il catch voglia errore di una certa gravità invece io vorrei fare rollback anche se per un motivo stupido non si riuscisse a scrivere su db tipo se sbaglio il nome di una tabella