选择语言 :

 Driver_Database_Driver_Postgre::_insert_id

获取最后插入的ID

int Driver_Database_Driver_Postgre::_insert_id( )
返回值
  • int
File: ./drivers/database/postgre/postgre.class.php
protected function _insert_id()
{
    $connection = $this->connection();

    $v = pg_version($connection);
    $v = isset($v['server']) ? $v['server'] : 0; // 'server' key is only available since PosgreSQL 7.4

    $table	= (func_num_args() > 0) ? func_get_arg(0) : null;
    $column	= (func_num_args() > 1) ? func_get_arg(1) : null;

    if ($table === null && $v >= '8.1')
    {
        $sql = 'SELECT LASTVAL() AS ins_id';
    }
    elseif ($table !== null)
    {
        if ($column !== null && $v >= '8.0')
        {
            $sql   = 'SELECT pg_get_serial_sequence(\''.$table."', '".$column."') AS seq";
            $query = pg_query($sql);
            $query = pg_fetch_array($query);
            $seq   = $query['seq'];
        }
        else
        {
            // seq_name passed in table parameter
            $seq = $table;
        }

        $sql = 'SELECT CURRVAL(\''.$seq."') AS ins_id";
    }
    else
    {
        return pg_last_oid($this->result_id);
    }

    $query = $this->query($sql);
    $query = pg_fetch_array($query);

    return (int)$query['ins_id'];
}