0 follower

CMssqlSqlsrvPdoAdapter

Package system.db.schema.mssql
Inheritance class CMssqlSqlsrvPdoAdapter » PDO
Since 1.1.13
Source Code framework/db/schema/mssql/CMssqlSqlsrvPdoAdapter.php
This is an extension of default PDO class for MSSQL SQLSRV driver only. It provides workaround of the improperly implemented functionalities of PDO SQLSRV driver.

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__construct() PDO
__sleep() PDO
__wakeup() PDO
beginTransaction() PDO
commit() PDO
errorCode() PDO
errorInfo() PDO
exec() PDO
getAttribute() PDO
getAvailableDrivers() PDO
inTransaction() PDO
lastInsertId() Returns last inserted ID value. CMssqlSqlsrvPdoAdapter
prepare() PDO
query() PDO
quote() PDO
rollBack() PDO
setAttribute() PDO

Method Details

lastInsertId() method
public integer lastInsertId(string|null $sequence=NULL)
$sequence string|null the sequence/table name. Defaults to null.
{return} integer last inserted ID value.
Source Code: framework/db/schema/mssql/CMssqlSqlsrvPdoAdapter.php#33 (show)
public function lastInsertId($sequence=null)
{
    
$parts explode('.'phpversion('pdo_sqlsrv'));
    
$sqlsrvVer phpversion('pdo_sqlsrv') ? intval(array_shift($parts)) : 0;

    if(!
$sequence || $sqlsrvVer >= 5)
        return 
parent::lastInsertId();
    return 
parent::lastInsertId($sequence);
}

Returns last inserted ID value. Before version 5.0, the SQLSRV driver supports PDO::lastInsertId() with one peculiarity: when $sequence's value is null or empty string it returns empty string. But when parameter is not specified at all it's working as expected and returns actual last inserted ID (like other PDO drivers). Version 5.0 of the Microsoft PHP Drivers for SQL Server changes the behaviour of PDO::lastInsertID to be consistent with the behaviour outlined in the PDO documentation. It returns the ID of the last inserted sequence or row.