Hola a todos, hoy os voy a explicar como podemos obtener el ultimo id que insertamos en una base de datos de MySQL y PHP.
Es normal que cuando insertemos algún registro en MySQL en nuestra aplicación PHP, necesitemos saber que id es el que se inserto si nuestra registro es auto increment.
Os dejo un manual donde vimos el tema de conectar PHP y MySQL:
https://www.discoduroderoer.es/conectar-mysql-con-php/
Para recuperar el último id con mysqli de PHP, lo podemos hacer de la siguiente forma:
— Conexion.php
<?php define("HOST_DB", "localhost"); define("USER_DB", "root"); define("PASS_DB", ""); define("NAME_DB", "academia_idiomas"); $conexion = new mysqli( constant("HOST_DB"), constant("USER_DB"), constant("PASS_DB"), constant("NAME_DB") ); ?>;
— index.php
<?php require "conexion.php"; $sql = "INSERT INTO alumnos VALUES(null, 'alumno1', '2019-11-30', '1')"; if(mysqli_query($conexion, $sql)){ echo "Registro insertado, el id insertado ha sido el " . mysqli_insert_id($conexion); }else{ echo "No se inserto el registro correctamente."; } ?>
Este es el resultado:
Para hacerlo PDO, lo podemos hacer así:
— Conexion.php
<?php //Opciones de la conexión $opciones = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); // Lugar donde esta la BD define("HOST_DB", "localhost"); // Usuario que se conecta a la BD define("USER_DB", "root"); // Contraseña del usuario define("PASS_DB", ""); // Nombre de la BD define("NAME_DB", "academia_idiomas"); try { $conexion = new PDO( 'mysql:host='.constant("HOST_DB").';dbname='.constant("NAME_DB"), constant("USER_DB"), constant("PASS_DB"), $opciones ); } catch (PDOException $e) { echo "Error: " . $e->getMessage() . "\n"; exit; } ?>
— index.php
<?php require "conexion.php"; $sql = "INSERT INTO alumnos VALUES(null, 'alumno1', '2019-11-30', '1')"; if($conexion->query($sql)){ echo "Registro insertado, el id insertado ha sido el " . $conexion->lastInsertId(); }else{ echo "No se inserto el registro correctamente."; } ?>
Este es el resultado:
Te dejo los ejemplos para descargar aquí.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta