Ma tu con i record con id duplicati che ci vuoi fare? Se non decidi questo...

Oltretutto noto solo ora che hai la stampa dell'eventuale errore mysql messa nella riga sbagliata. Probabilmente il tuo script si interrompe proprio per un id duplicato...