この接続上で最後に成功した insert クエリが自動生成した ID を返す

# db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — この接続上で最後に成功した insert クエリが自動生成した ID を返す

### 説明

function db2_last_insert_id(resource `$resource`): ?string

この接続上で最後に成功した insert クエリが自動生成した ID を返します。

この関数の結果は、以下のいずれにも影響を受けません。

- VALUE 句を使用した単一行の INSERT 文で、ID カラムを指定していないもの
- VALUE 句を使用した複数行の INSERT 文
- 全選択からの INSERT 文
- ROLLBACK TO SAVEPOINT 文

### パラメータ

`resource`
  db2_connect() あるいは db2_pconnect() が返す接続リソース。 このパラメータにはステートメントリソースや結果セットリソースを指定することはできません。

### 戻り値

この接続上で最後に成功した insert クエリが自動生成した ID を返します。

### 例

例1 db2_last_insert_id() の例

次の例は、この接続上で最後に成功した 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);

        /* Checking 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.";
    }
    ?>

上の例の出力は以下となります。

    Last Insert ID is : 1

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open