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

id no funciona auto_increment

Estas en el tema de id no funciona auto_increment en el foro de Mysql en Foros del Web. Hola, al crear mi base de datos declaré mi id_usuario como auto_increment, y al insertar datos con php lo hago de la siguiente forma: $sql="INSERT ...
  #1 (permalink)  
Antiguo 05/11/2012, 13:00
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
id no funciona auto_increment

Hola, al crear mi base de datos declaré mi id_usuario como auto_increment, y al insertar datos con php lo hago de la siguiente forma:

$sql="INSERT INTO Usuario VALUES ('$_POST[id_usuario]','$_POST[nombre_usuario]','$_POST[apellidop_usuario]','$_POST[correo_usuario]','$_POST[contrasena_usuario]')";

id_usuario no tiene ningún valor,pero las demás variables si lo tienen, entiendo que al insertar los datos en la tabla Usuario el id_usuario debería ponerse automáticamente en 1, si no es la forma, podrían decirme por favor ¿Cuál es la forma correcta?
  #2 (permalink)  
Antiguo 05/11/2012, 14:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: id no funciona auto_increment

Hola Kirara:

Mucho ojo, hay que recordad que es muy distinto enviar una cadena vacía ('') a un valor nulo (null) en otras palabras no es lo mismo poner esto

Código:
INSERT INTO Usuario VALUES ('', 'nombre'.........
a esto

Código:
INSERT INTO Usuario VALUES (null, 'nombre'.........
Intenta con NULL, y debería de funcionar.

Saludos
Leo.
  #3 (permalink)  
Antiguo 06/11/2012, 02:40
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: id no funciona auto_increment

No se mucho de PHP, pero creo que funcionaria si antes del VALUES pusieras todos los nombres de los campos que no son el id y en el values no pusieras nada para el Id
  #4 (permalink)  
Antiguo 06/11/2012, 02:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: id no funciona auto_increment

Si...

Código MySQL:
Ver original
  1. INSERT INTO Usuario (nombre_usuario,apellidop_usuario,correo_usuario,contrasena_usuario) VALUES ('$_POST[nombre_usuario]','$_POST[apellidop_usuario]','$_POST[correo_usuario]','$_POST[contrasena_usuario]')

Seria la forma si las variables y los campos tienen el mismo nombre.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 06/11/2012, 12:31
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: id no funciona auto_increment

Hola a todos.

Insisto que el problema no está tanto en el el uso de los nombres de los campos, sino en el uso de las comillas contra los valores nullos... en realidad hay muchas formas en que podría hacer funcionar el insert, listando o no los nombres de los campos, pero lo importante es el uso correcto de los valores nulos.

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla(
  2.     -> id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  3.     -> campo_obligatorio VARCHAR(30) NOT NULL,
  4.     -> campo_no_obligatorio VARCHAR(30),
  5.     -> PRIMARY KEY (id));
  6. Query OK, 0 rows affected (0.10 sec)
  7.  
  8. mysql> INSERT INTO tabla VALUES (NULL, 'campo obligatorio uno',
  9.     -> 'campo no obligatorio uno');
  10. Query OK, 1 row affected (0.03 sec)
  11.  
  12. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  13.     -> VALUES (NULL, 'campo obligatorio dos', 'campo no obligatorio dos');
  14. Query OK, 1 row affected (0.04 sec)
  15.  
  16. mysql> INSERT INTO tabla (campo_obligatorio, campo_no_obligatorio)
  17.     -> VALUES ('campo obligatorio tres', 'campo no obligatorio tres');
  18. Query OK, 1 row affected (0.02 sec)
  19.  
  20. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  21.     -> VALUES (NULL, 'campo obligatorio cuatro', NULL);
  22. Query OK, 1 row affected (0.02 sec)
  23.  
  24. mysql> INSERT INTO tabla (campo_obligatorio)
  25.     -> VALUES ('campo obligatorio cinco');
  26. Query OK, 1 row affected (0.03 sec)
  27.  
  28. mysql> INSERT INTO tabla (id, campo_obligatorio, campo_no_obligatorio)
  29.     -> VALUES (15, 'campo obligatorio quince', 'campo no obligatorio quince');
  30. Query OK, 1 row affected (0.02 sec)
  31.  
  32. mysql> INSERT INTO tabla VALUES (NULL, 'campo obligatorio otro', '');
  33. Query OK, 1 row affected (0.02 sec)
  34.  
  35. mysql> SELECT * FROM tabla;
  36. +----+--------------------------+-----------------------------+
  37. | id | campo_obligatorio        | campo_no_obligatorio        |
  38. +----+--------------------------+-----------------------------+
  39. |  1 | campo obligatorio uno    | campo no obligatorio uno    |
  40. |  2 | campo obligatorio dos    | campo no obligatorio dos    |
  41. |  3 | campo obligatorio tres   | campo no obligatorio tres   |
  42. |  4 | campo obligatorio cuatro | NULL                        |
  43. |  5 | campo obligatorio cinco  | NULL                        |
  44. | 15 | campo obligatorio quince | campo no obligatorio quince |
  45. | 16 | campo obligatorio otro   |                             |
  46. +----+--------------------------+-----------------------------+
  47. 6 rows in set (0.00 sec)

Observa el último caso, es muy claro lo que puse desde el primer post:

Cita:
es muy distinto enviar una cadena vacía ('') a un valor nulo (null)
Saludos Leo.

Etiquetas: php, sql, tabla, autoincrementable
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 23:31.