Hola:
Pues entonces deberías controlar que llegan bien los datos, que no intentes repetir claves, que sean correctos los datos de conexión, nombres de tablas y de datos, porque creo que la sentencia sql es correcta. Yo suelo ayudarme de phpmysqladmin.
Saludos