Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con Insert

Estas en el tema de Problema con Insert en el foro de Mysql en Foros del Web. Quisas esto lo debí postear en el foro PHP pero bueno: mi problema es que el mysql me está debolviendo el siguienete error: La consulta ...
  #1 (permalink)  
Antiguo 01/10/2010, 14:50
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años, 1 mes
Puntos: 4
Problema con Insert

Quisas esto lo debí postear en el foro PHP pero bueno: mi problema es que el mysql me está debolviendo el siguienete error:

La consulta falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Apellido, Segundo Apellido, Correo Electronico, Telefono) VALUES (Juan ,Nunez,E' at line 1

y la consulta que estoy haciendo es:

Código PHP:
$enlace mysql_connect('localhost''root''*****')
    or die(
'No pudo conectarse : ' mysql_error());
mysql_select_db('dbboletin') or die('No pudo seleccionarse la BD.');
$consulta "INSERT INTO afiliados (Nombre, Primer Apellido, Segundo Apellido, Correo Electronico,
Telefono) VALUES ($nombre,$primera,$segundoa,$correoe,$telef)"
;
$resultado mysql_query($consulta) or die('La consulta falló: ' mysql_error());
echo 
"Miembro nuevo agregado a la base de datos<br>";
?> 
He intentado poner en la parte de Values (con comillas internas y sin comillas internas y me da el mismo error.)

He buscado ejemplos y lo hago tal como es y nada.
Quizás lo que no soy capás de ver donde me equivoco.


Si alguien sabe dicirme donde está el error .¿?

Saludos y gracias
  #2 (permalink)  
Antiguo 01/10/2010, 16:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con Insert

El primer problema es que pareces haber creado la tabla con espacios en el nombre de los campos. Eso es una pésima práctica porque es muy fácil que se pueda olvidar el detalle y generar estos errores.
Cuando un campo, tabla o base contiene caracteres especiales, palabras reservadas o espacios forzosamente debes encerrar el nombre entre acentos inversos (`) para que el DBMS lo interprete como un sólo bloque. Además de eso, debes recordar poner apóstrofes (') en los valores tales como cadenas, fechas u horas:
Código MySQL:
Ver original
  1. INSERT INTO `afiliados`(`Nombre`, `Primer Apellido`, `Segundo Apellido`, `Correo Electronico`,
  2. `Telefono`) VALUES ('$nombre', '$primera', '$segundoa', '$correoe' , '$telef')
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/10/2010, 06:10
Usuario no validado
 
Fecha de Ingreso: abril-2010
Ubicación: La habana
Mensajes: 229
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Problema con Insert

Cita:
Iniciado por gnzsoloyo Ver Mensaje
El primer problema es que pareces haber creado la tabla con espacios en el nombre de los campos. Eso es una pésima práctica porque es muy fácil que se pueda olvidar el detalle y generar estos errores.
Cuando un campo, tabla o base contiene caracteres especiales, palabras reservadas o espacios forzosamente debes encerrar el nombre entre acentos inversos (`) para que el DBMS lo interprete como un sólo bloque. Además de eso, debes recordar poner apóstrofes (') en los valores tales como cadenas, fechas u horas:
Código MySQL:
Ver original
  1. INSERT INTO `afiliados`(`Nombre`, `Primer Apellido`, `Segundo Apellido`, `Correo Electronico`,
  2. `Telefono`) VALUES ('$nombre', '$primera', '$segundoa', '$correoe' , '$telef')
Muchísimas gracias no sabía el detalle ese de los acenton inversos.
Salu2

Etiquetas: insert
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:58.