mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_idDevuelve el valor generado para una columna AUTO_INCREMENT por la última consulta

Descripción

Estilo orientado a objetos

Estilo por procedimientos

mysqli_insert_id(mysqli $mysql): int|string

Devuelve el ID generado por una consulta INSERT o UPDATE en una tabla con una columna que tiene el atributo AUTO_INCREMENT. En el caso de consultas multilínea INSERT, esto devuelve el primer valor generado automáticamente que fue insertado con éxito.

Ejecutar una consulta INSERT o UPDATE utilizando la función MySQL LAST_INSERT_ID() modificará también el valor devuelto por mysqli_insert_id(). Si LAST_INSERT_ID(expr) se ha utilizado para generar el valor de AUTO_INCREMENT, esto devuelve el valor de la última expr en lugar del valor generado de AUTO_INCREMENT.

Devuelve 0 si la consulta anterior no ha cambiado el valor de AUTO_INCREMENT. mysqli_insert_id() debe ser llamado inmediatamente después de que la consulta haya generado el valor.

Parámetros

link

Sólo estilo por procediminetos: Un identificador de enlace devuelto por mysqli_connect() o mysqli_init()

Valores devueltos

El valor del campo AUTO_INCREMENT modificado por la última consulta. Devuelve cero si no ha habido consulta en la conexión o si la última consulta no ha modificado el valor del AUTO_INCREMENT.

Solo las consultas emitidas por la conexión actual afectan el valor de retorno. El valor no se ve afectado por las consultas que utilizan otras conexiones o clientes.

Nota:

Si el número es mayor que el valor máximo de un integer, será devuelto como un string

Ejemplos

Ejemplo #1 Ejemplo con $mysqli->insert_id

Estilo orientado a objetos

<?php
mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf("El nuevo registro tiene ID %d.\n", $mysqli->insert_id);

/* eliminar tabla */
$mysqli->query("DROP TABLE myCity");
?>

Estilo por procedimientos

<?php
mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf("El nuevo registro tiene ID %d.\n", mysqli_insert_id($link));

/* eliminar tabla */
mysqli_query($link, "DROP TABLE myCity");
?>

El resultado de los ejemplos sería:

El nuevo registro tiene ID 1.