2010-02-15 26 views
5

Estoy insertando un registro y quiero usar la identificación del último registro insertado. Esto es lo que he intentado:Seleccionar la última inserción id

$sql = 
    'INSERT INTO customer 
(first_name, 
last_name, 
email, 
password, 
date_created, 
dob, 
gender, 
customer_type) 
VALUES(:first_name, 
:last_name, 
:email, 
:password, 
:date_created, 
:dob, 
:gender, 
:customer_type)' . ' SELECT LAST_INSERT_ID()' ; 

estoy consiguiendo el error:
Usted tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión de servidor MySQL para la sintaxis correcta para usar cerca de 'SELECT LAST_INSERT_ID()'. ¿Alguien puede mostrarme dónde está mi error? Gracias!

+0

Nota: Estoy fijando esto como una referencia de una pregunta duplicada . Sin embargo, se le aconseja utilizar PDO o MySQLi en lugar de simple viejo mysl_ * –

Respuesta

12

Salida mysql_insert_id()

mysql_query($sql); 
$id = mysql_insert_id(); 

Cuando se ejecuta esta función después de haber ejecutado su sentencia INSERT en mysql_query() comando su resultado será el ID de la fila que se acaba de crear.

+0

¡Muchas gracias! ¡Funcionó! :) – chupinette

+0

@chupinette Me alegra ayudar. – nortron

+0

Actualmente estoy teniendo un problema ahora, mysql_insert_id() [function.mysql-insert-id]: Acceso denegado para el usuario 'ODBC' @ 'localhost' – chupinette

0

Usted puede hacer otra consulta:

$last_id = "SELECT LAST_INSERT_ID()";

O tratar de añadir ; en su consulta:

INSERT INTO customer (first_name, last_name, email, password, date_created, dob, gender, customer_type) VALUES(:first_name, :last_name, :email, :password, :date_created, :dob, :gender, :customer_type)<b>;</b>' . ' SELECT LAST_INSERT_ID()';

Cuestiones relacionadas