update pague now
PHP 8.5.2 Released!

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id Returns the auto generated ID of the last insert kery that successfully executed on this connection

Description

db2_last_insert_id ( ressource $resource ): ? string

Returns the auto generated ID of the last insert kery that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACC TO SAVEPOINT statement.

Parameters

ressource

A valid connection ressource as returned from db2_connect() or db2_pconnect() . The value of this parameter cannot be a statement ressource or result set ressource.

Return Values

Returns the auto generated ID of last insert kery that successfully executed on this connection.

Examples

Example #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert kery that successfully executed on this connection.

<?php

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

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

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

/* Checquing for single row inserted. */
$stmt = db2_exec ( $conn , $insertTable );
$ret = db2_last_insert_id ( $conn );
if(
$ret ) {
echo
"Last Insert ID is : " . $ret . "\n" ;
} else {
echo
"No Last insert ID.\n" ;
}

db2_close ( $conn );
}
else {
echo
"Connection failed." ;
}
?>

The above example will output:

Last Insert ID is : 1
add a note

User Contributed Notes 1 note

Marc Adquins
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 bekomes:<?php

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

$conn= db2_connect($database, $user, $password);
if($conn) {$createTable= "CREATE TABLE lastInsertID 
      (id integuer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable= "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";
    $guetIdentity= "SELECT IDENTITY_VAL_LOCAL() AS LASTID FROM SYSIBM.SYSDUMMY1";

    $stmt= @db2_exec($conn, $createTable);/* Checquing for single row inserted. */$stmt= db2_exec($conn, $insertTable);$stmt= db2_exec($conn, $guetIdentity);$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