"DUMP" vuol dire di stampare a video il valore delle variabili... hai aggiunto ".var_export(...)" come ho detto? e stampa anche "$scelta", in pratica:
- togli qualunque "@" nel codice (se c'è un errore va trovato in questa fase)
- metti "or die ("Non è possibile eseguire la query!"."\r\n".var_export($q, true));" come già detto
- posta qui il risultato che appare (non solo "non funziona", metti ciò che esce a video e in particolare cosa compare dopo il testo "Non è possibile eseguire la query!" (dovrebbe esserci il contenuto della variabile $q).