PHP Conference Fukuoka 2025

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_idRetorna el último ID generado por la última consulta de inserción

Descripción

db2_last_insert_id(resource $resource): ?string

Retorna el último identificador autogenerado por la última consulta de inserción para la conexión actual.

El resultado de esta función no se ve afectado por los siguientes eventos:

  • Un comando INSERT único con una cláusula VALUES para una tabla que no dispone de columna de identidad.

  • Un comando INSERT múltiple con cláusula VALUES.

  • Un comando INSERT con un SELECT.

  • Un comando ROLLBACK TO SAVEPOINT.

Parámetros

resource

Un recurso de conexión válido, creado por db2_connect() o db2_pconnect(). El valor de este argumento no puede ser un recurso de comando o de resultado.

Valores devueltos

Retorna el identificador autogenerado que pudo ser ejecutado correctamente en esta conexión.

Ejemplos

Ejemplo #1 Ejemplo con db2_last_insert_id()

El siguiente ejemplo muestra cómo retornar un identificador automático

<?php

$database
= "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if(
$conn) {
$createTable = "CREATE TABLE lastInsertID
(id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))"
;
$insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

$stmt = @db2_exec($conn, $createTable);

/* Verificación de la inserción de una fila única */
$stmt = db2_exec($conn, $insertTable);
$ret = db2_last_insert_id($conn);
if(
$ret) {
echo
"Último ID insertado: " . $ret . "\n";
} else {
echo
"No se ha insertado ningún ID recientemente.\n";
}

db2_close($conn);
}
else {
echo
"La conexión ha fallado.";
}
?>

El ejemplo anterior mostrará :

Último ID generado: 1

add a note

User Contributed Notes 1 note

up
0
Mark Adkins
15 years ago
On the iSeries and maybe other db2 platforms, this function is not defined--PHP Fatal error:  Call to undefined function  db2_last_insert_id().The alternative is to use IDENTITY_VAL_LOCAL().The above example becomes:<?php$database = "SAMPLE";$user = "db2inst1";$password = "ibmdb2";$conn = db2_connect($database, $user, $password);if($conn) {    $createTable = "CREATE TABLE lastInsertID       (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";    $getIdentity = "SELECT IDENTITY_VAL_LOCAL() AS LASTID FROM SYSIBM.SYSDUMMY1";    $stmt = @db2_exec($conn, $createTable);    /* Checking for single row inserted. */    $stmt = db2_exec($conn, $insertTable);    $stmt = db2_exec($conn, $getIdentity);    $row = db2_fetch_assoc($stmt);    $ret = $row['LASTID'];    if($ret) {        echo "Last Insert ID is : " . $ret . "\n";    } else {        echo "No Last insert ID.\n";    }        db2_close($conn);}else {    echo "Connection failed.";}?>
To Top