0 关注者

类 yii\db\mssql\PDO

继承yii\db\mssql\PDO » PDO
可用版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/db/mssql/PDO.php

这是 MSSQL 和 DBLIB 驱动程序的默认 PDO 类的扩展。

它为 MSSQL 和 DBLIB 驱动程序中实现不当的功能提供了解决方案。

公共方法

隐藏继承的方法

方法 描述 定义于
beginTransaction() 启动事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。 yii\db\mssql\PDO
commit() 提交事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。 yii\db\mssql\PDO
getAttribute() 检索数据库连接属性。 yii\db\mssql\PDO
lastInsertId() 返回最后插入 ID 的值。 yii\db\mssql\PDO
rollBack() 回滚事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。 yii\db\mssql\PDO

方法详情

隐藏继承的方法

beginTransaction() 公共方法

启动事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。

public boolean beginTransaction ( )
返回值 boolean

事务启动的结果。

                #[\ReturnTypeWillChange]
public function beginTransaction()
{
    $this->exec('BEGIN TRANSACTION');
    return true;
}

            
commit() 公共方法

提交事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。

public boolean commit ( )
返回值 boolean

事务提交的结果。

                #[\ReturnTypeWillChange]
public function commit()
{
    $this->exec('COMMIT TRANSACTION');
    return true;
}

            
getAttribute() 公共方法

检索数据库连接属性。

需要重写 PDO 的方法,因为某些 MSSQL PDO 驱动程序(例如 dblib)不支持获取属性。

public mixed getAttribute ( $attribute )
$attribute integer

PDO::ATTR_* 常量之一。

返回值 mixed

成功调用返回请求的 PDO 属性的值。失败调用返回 null。

                #[\ReturnTypeWillChange]
public function getAttribute($attribute)
{
    try {
        return parent::getAttribute($attribute);
    } catch (\PDOException $e) {
        switch ($attribute) {
            case self::ATTR_SERVER_VERSION:
                return $this->query("SELECT CAST(SERVERPROPERTY('productversion') AS VARCHAR)")->fetchColumn();
            default:
                throw $e;
        }
    }
}

            
lastInsertId() 公共方法

返回最后插入 ID 的值。

public integer lastInsertId ( $sequence null )
$sequence string|null

序列名称。默认为 null。

返回值 integer

最后插入的 ID 值。

                #[\ReturnTypeWillChange]
public function lastInsertId($sequence = null)
{
    return $this->query('SELECT CAST(COALESCE(SCOPE_IDENTITY(), @@IDENTITY) AS bigint)')->fetchColumn();
}

            
rollBack() 公共方法

回滚事务。需要重写 PDO 的方法,因为 MSSQL PDO 驱动程序本身不支持事务。

public boolean rollBack ( )
返回值 boolean

事务回滚的结果。

                #[\ReturnTypeWillChange]
public function rollBack()
{
    $this->exec('ROLLBACK TRANSACTION');
    return true;
}