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

MYSQL: Obtener el id de un insert

Estas en el tema de MYSQL: Obtener el id de un insert en el foro de Mysql en Foros del Web. Bueno como dice el titulo lo que tengo que hacer es lo siguiente: Que el MYSQL + PHP que estoy programando necesito que me devuelva ...
  #1 (permalink)  
Antiguo 13/06/2010, 15:37
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 9 años, 9 meses
Puntos: 1
MYSQL: Obtener el id de un insert

Bueno como dice el titulo lo que tengo que hacer es lo siguiente:
Que el MYSQL + PHP que estoy programando necesito que me devuelva el id con el que estoy registrando en ese momento en la columna.

La idea es que me devuelva el numero de id que va a tener una vez registrado.
  #2 (permalink)  
Antiguo 13/06/2010, 18:38
Avatar de Infernal  
Fecha de Ingreso: septiembre-2004
Ubicación: Tamaulipas, Mexico
Mensajes: 124
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: MYSQL: Obtener el id de un insert

Con SQL:
Código SQL:
Ver original
  1. SELECT (MAX(id)+1) AS id FROM tabla
  2. o
  3. SELECT (id+1) AS ID FROM tabla ORDER BY id DESC

Con PHP:
Código PHP:
Ver original
  1. mysql_query("INSERT INTO ...");
  2. $ultimo_id = mysql_insert_id() + 1;
  #3 (permalink)  
Antiguo 13/06/2010, 18:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 10 meses
Puntos: 2653
Respuesta: MYSQL: Obtener el id de un insert

Infernal: Para eso existe la función LAST_INSERT_ID();
Esta sentencia debe ejecutarse inmediatamente después de la inserción y devuelve el último ID numérico generado por una inserción única, o bien el primer ID generado en una inserción de múltiples registros.
Ante cualquier duda, siempre es mejor leer el manual de referencia: 12.9.3. Funciones de información

Cita:
LAST_INSERT_ID(), LAST_INSERT_ID(expr)

Retorna el último valor generado automáticamente que se insertó en una columna AUTO_INCREMENT.

Código MySQL:
Ver original
  1.         -> 195

El último ID generado se mantiene en el servidor para cada conexión. Esto significa que el valor de la función retorna a cada cliente el valor AUTO_INCREMENT más reciente generado por ese cliente. Este valor no puede ser afectado por otros clientes, incluso si generan valores AUTO_INCREMENT ellos mismos. Este comportamiento asegura que reciba sus propios IDs sin tener en cuenta la actividad de otros clientes y sin la necesidad de bloqueos o transacciones.

El valor de LAST_INSERT_ID() no cambia si actualiza la columna AUTO_INCREMENT de un registro con un valor no mágico (esto es, un valor que no es NULL ni 0).

Si inserta varios registros a la vez con un comando de inserción LAST_INSERT_ID() retorna el valor del primer registro insertado. La razón para esto es hacer posible reproducir fácilmente el mismo comando INSERT contra otro servidor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 14/06/2010, 21:58
 
Fecha de Ingreso: noviembre-2003
Mensajes: 267
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: MYSQL: Obtener el id de un insert

Hola , usa

mysql_insert_id();
después del mysql_query , a mi me nada bien
  #5 (permalink)  
Antiguo 10/11/2011, 13:55
Avatar de tobal_mx  
Fecha de Ingreso: junio-2011
Ubicación: Curicó
Mensajes: 32
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: MYSQL: Obtener el id de un insert

mysql_insert_id(); ;)

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:15.