Ver Mensaje Individual
  #19 (permalink)  
Antiguo 21/03/2014, 21:28
Avatar de gnzsoloyo
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: sos con registro a base de datos no registra

Cita:
oloca los datos en los campos equivocados
MySQL no coloca los datos en los campos equivocados. Éstás poniendo los datos en el orden incorrecto del VALUE.
Cuando no indicas qué campos se insertarán, debes respetar el orden físico de las columnas de la tabla.

Código SQL:
Ver original
  1. CREATE TABLE TABLA1(
  2. a INT,
  3. b VARCHAR,
  4. c DATE);
Correcto:
Código SQL:
Ver original
  1. INSERT INTO tabla1(b, c, a)
  2. VALUES('texto', '2014-03-21', 12);

Código SQL:
Ver original
  1. INSERT INTO tabla1
  2. VALUES(12, 'texto', '2014-03-21');

Incorrecto:
Código SQL:
Ver original
  1. INSERT INTO tabla1
  2. VALUES('texto', '2014-03-21', 12);

MySQL no analiza los datos semánticamente, ni tampoco puede adivinar que los estás mandando mal.
Y si además tratas todas las cosas como cadenas de texto, es altamente probable que no se disparen errores de sintaxis cuando los datos están en la posición incorrecta.
Esto significa que si vas a insertar datos en un campo numérico no lo pongas entre apóstrofos, y si es de fecha, mételo en una función de conversión, para que la funcion dispare un error cuando encuentre algo que no debe estar allí.
Por ejemplo:
Código SQL:
Ver original
  1. INSERT INTO tabla1(b, c, a)
  2. VALUES('texto', DATE('2014-03-21'), 12);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)