db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_idВозвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении

Описание

db2_last_insert_id(resource $resource): string

Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

На результат этой функции не влияет ни одно из следующего:

  • Оператор INSERT для одной строки с VALUES для таблицы без столбца идентификаторов.

  • Оператор INSERT для нескольких строк с VALUES.

  • Оператор INSERT с полной выборкой.

  • Оператор ROLLBACK TO SAVEPOINT.

Список параметров

resource

Допустимый ресурс подключения, возвращаемый db2_connect() или db2_pconnect(). Значение этого параметра не может быть ресурсом оператора или ресурсом набора результатов.

Возвращаемые значения

Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

Примеры

Пример #1 Пример использования db2_last_insert_id()

В следующем примере показано, как вернуть автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

<?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);

    
/* Проверка на вставку одной строки. */
    
$stmt db2_exec($conn$insertTable);
    
$ret =  db2_last_insert_id($conn);
    if(
$ret) {
        echo 
"Последний идентификатор : " $ret "\n";
    } else {
        echo 
"Последний идентификатор отсутствует.\n";
    }

    
db2_close($conn);
}
else {
    echo 
"Ошибка соединения.";
}
?>

Результат выполнения данного примера:

Последний идентификатор : 1

add a note

User Contributed Notes 1 note

up
0
Mark Adkins
12 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