Na postgresie sie nie znam, ale znam linka do manuala a tam jest napisane, ze pg_query ci tego nie zwroci:
pg_query() zwraca identyfikator wyniku jeśli zapytnie zostało wykonane lub FALSE w razie niepowodzenia.
This is very useful function

function sql_last_inserted_id($connection, $result, $table_name, $column_name) {
$oid = pg_last_oid ( $result);
$query_for_id = "SELECT $column_name FROM $table_name WHERE oid=$oid";
$result_for_id = pg_query($connection,$query_for_id);
if(pg_num_rows($result_for_id))
$id=pg_fetch_array($result_for_id,0,PGSQL_ASSOC);
return $id[$column_name];
}
Call after insert, simply
