(PECL ibm_db2 >= 1.7.1)
db2_last_insert_id — この接続上で最後に成功した insert クエリが自動生成した ID を返す
この接続上で最後に成功した insert クエリが自動生成した ID を返します。
この関数の結果は、以下のいずれにも影響を受けません。
VALUE 句を使用した単一行の INSERT 文で、ID カラムを指定していないもの
VALUE 句を使用した複数行の INSERT 文
全選択からの INSERT 文
ROLLBACK TO SAVEPOINT 文
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