Ho scoperto dov'era l'errore. La sintassi è corretta. Quella virgola può essere levata però la sintassi diventa lievemente diversa (tipo id INT(255) FOREIGN KEY REFERENCES utenti (id), o una cosa del genere). Il problema era tutt'altro! Io uso Xampp, e per far funzionare i vincoli di chiavi esterne l'ENGINE del database deve essere InnoDB. Per fare ciò bisogna editare il file my dentro la cartella xampp/mysql/bin, decommentando tutte le linee sotto l'area skip InnoDB e commentare la stessa riga skip-InnoDB fino ad ottenere ciò:
#skip-innodb
Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:/Programmi/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/Programmi/xampp/mysql/data/
innodb_log_arch_dir = C:/Programmi/xampp/mysql/data/
You can set .._buffer_pool_size up to 50 - 80 %
of RAM but beware of setting memory usage too high
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
Set .._log_file_size to 25 % of buffer pool size
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50
a questo punto sarà necessario terminare ogni query relativa alla creazione di nuove tavole con vincoli di chiave esterna con type=InnoDB