Si el campo `monitor_idmonitoreo` es un ID autoincrement, no tienes que enviarlo para que sea generado. Eso es asunto de MySQL y sólo tienes que recuperar el id para usarlo, si quieres.
Código MySQL:
Ver originalINSERT INTO `sistemaslms`.
`controlmonitor` (`USERNAME` , `fecha_modificacion`, `comentario`, `fecha_proximo_contacto`, `hora_proximo_contacto`,
`idEstado`, `idmonitoreo`)
'andres_vega', NOW( ) , 'comentario largooooooooooooooooooooooo', '2010-05-29', '12:12', '20', '' );
Además: No pongas entre comillas valores numéricos para cargar en campos numéricos. Le obligas a MySQL a realizar conversiones implícitas que a la larga afectan la performance. Y si los valores son decimales, deben ir con puntos y no comas.
Tip final: El hecho de que las tablas estén "en cascada", como dices, no implica que los datos se pasen automáticamente de una a otra. ¿Eso lo entiendes, no?
Las tablas primarias deben llenarse antes de las dependientes o tendrás problemas de integridad referencial.