public static function lastId($sequence = null)
{
try {
$driver = self::getDriver();
switch ($driver) {
case 'mysql':
case 'cubrid':
$sql = "SELECT LAST_INSERT_ID() AS lastId;";
break;
case 'sqlite':
$sql = "SELECT LAST_INSERT_ROWID() AS lastId;";
break;
case 'pgsql':
$sql = "SELECT " . ($sequence ? "CURRVAL('" . $sequence . "')" : "LASTVAL()") . " AS lastId;";
break;
case 'mssql':
case 'sqlsrv':
$sql = "SELECT " . ($sequence ? "IDENT_CURRENT('" . $sequence . "')" : "@@IDENTITY") . " AS lastId;";
break;
#case 'oracle': $sql = "SELECT " . $sequence . ".CURRVAL AS lastId FROM DUAL;";
#case 'oracle': $sql = "SELECT " . $sequence . ".CURRVAL AS lastId FROM DUAL;";
case 'oracle':
$sql = "SELECT last_number AS lastId FROM user_sequences WHERE sequence_name = '" . $sequence . "';";
break;
default:
throw new \PDOException(self::$exception['not-implemented'] . ' PDO4You::lastId()');
}
self::$lastId = self::selectRecords($sql, null, null, false);
return self::$lastId[0]['lastid'];
} catch (\PDOException $e) {
self::stackTrace($e);
}
}