Make insert_get_id() work with non-auto-incrementing columns.

This commit is contained in:
Franz Liedke 2012-11-01 18:16:44 +01:00
parent d693a82615
commit b88c9144ec
1 changed files with 8 additions and 3 deletions

View File

@ -810,11 +810,11 @@ public function insert($values)
} }
/** /**
* Insert an array of values into the database table and return the ID. * Insert an array of values into the database table and return the key.
* *
* @param array $values * @param array $values
* @param string $column * @param string $column
* @return int * @return mixed
*/ */
public function insert_get_id($values, $column = 'id') public function insert_get_id($values, $column = 'id')
{ {
@ -822,7 +822,12 @@ public function insert_get_id($values, $column = 'id')
$result = $this->connection->query($sql, array_values($values)); $result = $this->connection->query($sql, array_values($values));
if ($this->grammar instanceof Postgres) // If the key is not auto-incrementing, we will just return the inserted value
if (isset($values[$column]))
{
return $values[$column];
}
else if ($this->grammar instanceof Postgres)
{ {
return (int) $result[0]->$column; return (int) $result[0]->$column;
} }