pg_last_oid

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

pg_last_oidRetorna o OID da última linha

Descrição

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

pg_last_oid() é usado para recuperar o OID atribuído a uma linha inserida.

O campo OID tornou-se um campo opcional no PostgreSQL 7.2 e não estará presente por padrão no PostgreSQL 8.1. Quando o campo OID não está presente em uma tabela, o programador deve usar pg_result_status() para verificar se a inserção foi bem-sucedida.

Para obter o valor de um campo SERIAL em uma linha inserida, é necessário utilizar a função CURRVAL do PostgreSQL, nomeando a sequência cujo último valor é requerido. Se o nome da sequência for desconhecido, a função pg_get_serial_sequence do PostgreSQL 8.0 é necessária.

O PostgreSQL 8.1 possui uma função LASTVAL que retorna o valor da sequência usada mais recentemente na sessão. Isso evita a necessidade de nomear completamente a sequência, tabela ou coluna.

Note:

Esta função costumava ser chamada de pg_getlastoid().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

Um int ou string contendo o OID atribuído à linha inserida mais recentemente na connection especificada, ou false por erro ou nenhum OID disponível.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Example #1 Exemplo de pg_last_oid()

<?php
  // Conecta ao banco de dados
  pg_connect("dbname=mark host=localhost");

  // Cria uma tabela de exemplo
  pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  // Insira alguns dados nela
  $res = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res);
?>

Veja Também