Use la función PHP MySQLi para obtener la última ID insertada
Este tutorial presenta brevemente la función PHP mysqli()
y demuestra cómo usarla para obtener el último id
insertado de la base de datos MySQL.
Función mysqli()
de PHP
Es una versión de la extensión del controlador MySQL
llamada mysqli
, que a menudo se usa con scripts del lado del servidor PHP para conectarse con las bases de datos o esquemas MySQL.
Para comenzar, primero debe conectarse con su base de datos MySQL. La función connect()
o mysqli_connect()
se utiliza para abrir una conexión con el servidor MySQL.
Antes de usar la función, debe crear el objeto mysqli()
, que contiene parámetros sobre su servidor MySQL.
<?php
$mysqli = new mysqli(
"host_name",
"username",
"password",
"database_name",
"port",
"socket"
);
//Checking connection
if ($mysqli -> connect_errno){
echo "Something went wrong. Failed to connect with MySQL database".
$mysqli -> connection_error;
exit();
}
else{
echo "Connected";
}
?>
El código anterior informará al usuario si la conexión no se establece; de lo contrario, imprimirá Conectado
en la pantalla del navegador.
Parámetros Descripción
Parámetro | Descripción |
---|---|
host_name |
Especifique el nombre del host (Ej: localhost ) o la dirección IP . |
username |
Especifique su nombre de usuario de su base de datos MySQL. |
password |
Especifique su contraseña de su base de datos MySQL. |
database_name |
Proporcione el nombre de su base de datos o esquema con el que desea conectarse en su base de datos MySQL. |
port |
Se utiliza para conectarse al servidor MySQL. |
socket |
Especifique el socket o tubería con nombre. |
Use la función PHP mysqli()
para obtener el último ID
insertado
Para lograr esta tarea, debe crear una tabla con un campo AUTO_INCREMENT
, que devolverá el último registro insertado id
.
¿Por qué tiene AUTO_INCREMENT
? Cada vez que se inserta un nuevo registro en una tabla, el auto-incremento
permite crear automáticamente un número único.
Con frecuencia es el campo de clave principal
que queremos que se produzca automáticamente cada vez que se inserta un nuevo registro. Vea el siguiente código para saber cómo podemos crear una columna AUTO_INCREMENT
:
CREATE TABLE table_name(
column_name1 INT AUTO_INCREMENT PRIMARY KEY,
column_name2 VARCHAR(100)
);
La columna INT
almacenará valores enteros, y AUTO_INCREMENT
incrementará automáticamente el valor de la columna cada vez que se inserte un nuevo registro. Finalmente, la CLAVE PRINCIPAL
configura la restricción, permitiendo solo valores únicos para la columna.
La segunda columna es del tipo VARCHAR
que puede aceptar valores de cadena. Para recuperar el último id
insertado, mysqli()
proporciona el comando insert_id
; compruébalo a continuación:
$mysql->insert_id;
Para ver este comando en acción, primero ejecute una consulta INSERT
, luego ejecute el comando insert_id
para ver el último id
insertado:
<?php
$mysqli = new mysqli(
"host_name",
"username",
"password",
"database_name",
"port",
"socket"
);
// Checking connection
if ($mysqli -> connect_errno){
echo "Something went wrong. Failed to connect with MySQL database".
$mysqli -> connection_error;
exit();
}else{
echo "Connected";
}
$sql_query = "INSERT INTO table_name (column_name2) VALUES ('value_2')";
if ($mysqli->query($sql_query) === TRUE) {
printf("Last inserted record ID %d. \n", $mysqli->insert_id);
} else {
echo "Error: ". $sql_query . "<br>" . $mysqli->error;
}
?>
En el código anterior, la función $mysqli -> query()
ejecuta su consulta dada en la base de datos seleccionada. y compara el valor devuelto.
Si es VERDADERO
, usamos la función printf()
para generar una cadena formateada; de lo contrario, imprimirá un error usando $mysqli -> error
.
Los parámetros que proporcione a la función printf()
se insertarán después del signo %
en la cadena original que proporcionó. Y el signo %d
significa que el valor que se insertará es un número decimal Con signo
(negativo, positivo o cero).