直近の行のオブジェクト ID を返す

# pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_oid — 直近の行のオブジェクト ID を返す

### 説明

function pg_last_oid(PgSql\Result `$result`): string|int|false

pg_last_oid() は、挿入された行に割り当てられた OID を取得します。

OID フィールドは PostgreSQL 7.2 からはオプションとなり、 PostgreSQL 8.1 ではデフォルトで存在しません。OID フィールドが テーブルに存在しない場合、プログラマは pg_result_status() を使用して挿入が成功したことを 確かめる必要があります。

挿入された行の `SERIAL` フィールドの値を取得するには、 PostgreSQL の `CURRVAL` 関数を使用してシーケンス内で 直近に要求された値を取得する必要があります。シーケンス名がわからない 場合は、PostgreSQL 8.0 の関数 `pg_get_serial_sequence` が必要になります。

PostgreSQL 8.1 には `LASTVAL` 関数が存在し、セッション内で 直近に使用されたシーケンスの値を返します。これを用いれば、シーケンスや テーブルやカラムの名前を指定する必要がなくなります。

> 注意:

> この関数は、以前は pg_getlastoid() と呼ばれていました。

### パラメータ

`result`
  pg_query()、pg_query_params() や (様々な関数がありますが、特に) pg_execute() が返した PgSql\Result クラスのインスタンス。

### 戻り値

指定された `connection` で、直近に挿入された行に 割り当てられた OID を数値または文字列で返します。エラー時や有効な OID のない場合に `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | `result` は、PgSql\Result クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、resource を期待していました。

### 例

例1 pg_last_oid() の例

    <?php
      // データベースに接続します
      pg_connect("dbname=mark host=localhost");

      // サンプルのテーブルを作ります
      pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

      // データを追加します
      $res = pg_query("INSERT INTO test VALUES (1)");

      $oid = pg_last_oid($res);
    ?>

### 参考

- pg_query() - クエリを実行する
- pg_result_status() - クエリ結果のステータスを取得する

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