use lastval() to get the insert id in postgesql

This commit is contained in:
Robin Appelman 2012-11-23 00:23:27 +01:00
parent 3688376a6f
commit 95340a9e67
1 changed files with 12 additions and 5 deletions

View File

@ -355,12 +355,19 @@ class OC_DB {
*/ */
public static function insertid($table=null) { public static function insertid($table=null) {
self::connect(); self::connect();
if($table !== null) { $type = OC_Config::getValue( "dbtype", "sqlite" );
$prefix = OC_Config::getValue( "dbtableprefix", "oc_" ); if( $type == 'pgsql' ) {
$suffix = OC_Config::getValue( "dbsequencesuffix", "_id_seq" ); $query = self::prepare('SELECT lastval() AS id');
$table = str_replace( '*PREFIX*', $prefix, $table ).$suffix; $row = $query->execute()->fetchRow();
return $row['id'];
}else{
if($table !== null) {
$prefix = OC_Config::getValue( "dbtableprefix", "oc_" );
$suffix = OC_Config::getValue( "dbsequencesuffix", "_id_seq" );
$table = str_replace( '*PREFIX*', $prefix, $table ).$suffix;
}
return self::$connection->lastInsertId($table);
} }
return self::$connection->lastInsertId($table);
} }
/** /**