PDO4You\PDO4You::lastId PHP Method

lastId() public static method

Method that returns the ID of the last inserted row or sequence value Database such as MS SQL Server, PostgreSQL, among others, they make use variable sequence
public static lastId ( string $sequence = null ) : array
$sequence string Name of the variable sequence requested for some database
return array
    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);
        }
    }

Usage Example

Beispiel #1
0
 /**
  * Format the Result
  * 
  */
 private function getResult($result, $show_lastid = false)
 {
     $result = '<br /><br /> - The code above will output: <pre style="color:blue;">' . print_r($this->sanitize($result), true) . '</pre>';
     $result .= 'Total records affected: <strong style="color:red;">' . PDO4You::rowCount() . '</strong>';
     $result .= $show_lastid ? '&nbsp;&nbsp; Id of the last iteration: <strong style="color:red;">' . PDO4You::lastId() . '</strong>' : null;
     return $result;
 }