获取最后插入的ID
int Driver_Database_Driver_Postgre::_insert_id( )
int
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'];
}