No me queda claro cuál es tu problema, exactamente, porque en cuanto a la sentencia INSERT que estás invocando, la msima está técnicamente bien escrita... salvo un pequeño problema que por allí puede estar produciéndose y que se debe a la interacción de un código PHP con un script que debe quedar en SQL.
Me explico: Lo que el MySQL va a recibir es una sentencia de SQL, y como tal en VALUES deben ir los valores que se almacenarán. Dicho esto hay que tener
bien claro que
las variables de PHP son inaccesibles para MySQL. Lo único que recibe es
la cadena de texto que uno construye en el PHP.
Ahora bien, la cadena de texto que estás creando, suponiendo estos contenidos:
$field[0] = 1
$field[1] = Juan
$field[2]= Martinez Rueda
$field[3] = 23
Cuando se termine de crear quedará:
Código sql:
Ver originalINSERT INTO participantes (id_matricula,nombre,apellidos,grupo)
VALUES (1, Juan, Martinez Rueda, 3)
que a primera parece bien, pero no, porque el MySQL interpretará que "Juan" y "Martinez Rueda", son denominaciones de campos y no cadenas. Para que las tome como cadenas deben quedar así:
Código sql:
Ver originalINSERT INTO participantes (id_matricula,nombre,apellidos,grupo)
VALUES (1, 'Juan', 'Martinez Rueda', 3)
Esto, cuando pones código de PHP mezclado con SQL, resulta indetectable, porque
no sabemos cuál es el real contenido de las variables. Por ello existe una regla de oro en este foro de Bases de Datos: n
o se debe poner aquí código de programación. Confunde y esconde problemas. Además, para los que solamente trabajamos como DBA, resulta casi inentendible.
Prueba ese detalle y si sigues teniendo problemas, pero los errores hacen referencia a líneas de tus script en PHP, postea las preguntas en el
Foro de PHP, que es donde te podrán responder mejor. De todos modos, si el moderador ve que el problema es de BB.DD., te puede mover el post hacia acá.
Suerte.