Vaya al Contenido

PHP Obtener Último ID - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Obtener el Último ID Insertado de MySQL con PHP


Cuando insertas un registro en una tabla MySQL que tiene un campo AUTO_INCREMENT, puedes obtener el ID que se generó automáticamente para ese registro inmediatamente después de realizar la inserción.
Esto es útil cuando necesitas hacer referencia al registro recién insertado, como cuando trabajas con relaciones entre tablas.

La Sentencia INSERT INTO


Supongamos que tenemos la siguiente tabla llamada products:

CREATE TABLE products (
product_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(50) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);


El campo product_id es un campo de tipo AUTO_INCREMENT, por lo que cada vez que insertamos un nuevo producto, MySQL genera un ID único automáticamente.

Obtener el ID del Último Registro Insertado Usando MySQLi Orientado a Objetos


A continuación, te mostramos cómo insertar un nuevo registro en la tabla products y obtener el ID del último registro insertado utilizando MySQLi en su modo orientado a objetos.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db";

// Crear conexión
$conn = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}

// SQL para insertar un nuevo producto
$sql = "INSERT INTO products (product_name, price) VALUES ('Laptop', 799.99)";

// Ejecutar la consulta y obtener el último ID insertado
if ($conn->query($sql) === TRUE) {
$ultimo_id = $conn->insert_id;
echo "Nuevo producto creado exitosamente. Último ID insertado: " . $ultimo_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

// Cerrar la conexión
$conn->close();
?>


Descripción:


En este ejemplo, primero se establece una conexión a la base de datos utilizando MySQLi en su modo orientado a objetos. Después de insertar el nuevo producto, utilizamos la propiedad $conn->insert_id para obtener el ID generado por MySQL para el registro recién insertado. Finalmente, mostramos el ID y cerramos la conexión.

Obtener el ID del Último Registro Insertado Usando MySQLi Procedural


A continuación, mostramos cómo realizar la misma operación utilizando MySQLi en su modo procedural.

<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db";

// Crear conexión
$conn = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conn) {
die("Error en la conexión: " . mysqli_connect_error());
}

// SQL para insertar un nuevo producto
$sql = "INSERT INTO products (product_name, price) VALUES ('Smartphone', 499.99)";

// Ejecutar la consulta y obtener el último ID insertado
if (mysqli_query($conn, $sql)) {
$ultimo_id = mysqli_insert_id($conn);
echo "Nuevo producto creado exitosamente. Último ID insertado: " . $ultimo_id;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

// Cerrar la conexión
mysqli_close($conn);
?>


Descripción:


En este ejemplo, realizamos el mismo proceso, pero utilizando MySQLi en su modo procedural. La función mysqli_insert_id($conn) devuelve el ID del último registro insertado.

Obtener el ID del Último Registro Insertado Usando PDO


Finalmente, aquí te mostramos cómo hacer lo mismo utilizando PDO.
<?php
$servidor = "localhost";
$usuario = "usuario";
$contraseña = "contraseña";
$base_datos = "tienda_db_pdo";

try {
// Crear conexión PDO
$conn = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// SQL para insertar un nuevo producto
$sql = "INSERT INTO products (product_name, price) VALUES ('Tablet', 299.99)";

// Ejecutar la consulta
$conn->exec($sql);

// Obtener el último ID insertado
$ultimo_id = $conn->lastInsertId();
echo "Nuevo producto creado exitosamente. Último ID insertado: " . $ultimo_id;

} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}

// Cerrar la conexión
$conn = null;
?>


Descripción:


En este ejemplo, utilizamos PDO para insertar un nuevo registro en la tabla products y obtener el último ID insertado utilizando el método $conn->lastInsertId(). Este método es equivalente a las funciones de MySQLi, pero en el contexto de PDO.

Conclusión


Obtener el ID del último registro insertado en una tabla MySQL es una tarea común cuando trabajamos con campos AUTO_INCREMENT.
Ya sea que uses MySQLi o PDO, el proceso es sencillo y puedes acceder a este ID inmediatamente después de realizar una operación INSERT.
Esto es útil cuando necesitas hacer referencia al registro recién creado, como al insertar datos relacionados en otras tablas.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"