Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/01/2015, 15:30
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: Error en consulta

Es un error común entre los que se inician...

Cuando usas campos autoincrementales es habitual hacer los INSERT omitiendo el valor que deberá ocupar ese AI, ya que se genera automáticamente, es cierto.
Pero la base de datos no puede adivinar cuándo un campo es AI cuando se lo omite. Lo primero que verifica es que la cantidad de datos que se envían en el VALUES coincide con la cantidad de campos de la tabla, y la tuya tiene seis (6) columnas, pero envías cinco (5 datos).

Cuando no se está enviando uno o más valores en un INSERT lo que debe hacerse es listar en el INSERT INTO tabla todos los campos que si se envían, omitiendo los que correspondan.

Código MySQL:
Ver original
  1. INSERT INTO usuarios(nombre, nick, apellidos, email, contraseña) VALUES  
  2.         (
  3.         '".$_POST['nombre']."',
  4.         '".$_POST['nick']."',
  5.         '".$_POST['apellidos']."',
  6.         '".$_POST['contraseña']."'
  7.         )

Una nota adicional importante: Aunque te los acepte, es una muy mala práctica usar lestras acentuadas en los nombres de objetos de BBDD, tales como columnas, tablas, bases, SP, o cualquier otro. Tienden a traer problemas aal ser corrompidos en los scripts de los lenguajes de programación, en la configuración de las colecciones, y los charset y collation de las bases de datos.
No lo uses.

Obviamente me estoy refiriendo a ese campo "contraseña", donde la "ñ" sin dudas en algun momento te traerá problemas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)