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
Method | Description | Defined 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#34 (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.