Cita: quiere decir que hace el INSERT pero parece que elimina los datos.
No necesariamente. Un INSERT fallido modifica el valor del auto_increment para la columna de todos modos, porque ese valor se genera previo al INSERT, y en una tabla no transaccional.
Así que no es un error.
L oque es un error es que asumas cuál es el valor que va a tener el AI. Deja que eso lo maneje MySQL y recupera el valor generado
luego de haberse realizado una inserción exitosa.
Por lo demás, es obvio que no estás validando correctamente la ejecución de la consulta.
Posdata: procura no modificar el tamaño de la tipografía. A ti te puede resultar lindo, pero es un espanto para leerla. Casi ni te respondo.