Hola,
Con el metodo de chalito puedes usar
mysql_errno() para saber el numero de error que se ha producido y saber asi si ha sido producido por meter una clave duplicada o ha sido otro error. La ventaja de este metodo es que consume menos recursos de BD y es mas rapido. Solo se ejecuta una consulta.
Saludos.