クラス 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() | トランザクションを開始します。MSSQL PDOドライバーはトランザクションをネイティブにサポートしていないため、PDOのメソッドをオーバーライドする必要があります。 | yii\db\mssql\PDO |
commit() | トランザクションをコミットします。MSSQL PDOドライバーはトランザクションをネイティブにサポートしていないため、PDOのメソッドをオーバーライドする必要があります。 | yii\db\mssql\PDO |
getAttribute() | データベース接続属性を取得します。 | yii\db\mssql\PDO |
lastInsertId() | 最後に挿入されたIDの値を返します。 | yii\db\mssql\PDO |
rollBack() | トランザクションをロールバックします。MSSQL PDOドライバーはトランザクションをネイティブにサポートしていないため、PDOのメソッドをオーバーライドする必要があります。 | yii\db\mssql\PDO |
メソッド詳細
トランザクションを開始します。MSSQL PDOドライバーはトランザクションをネイティブにサポートしていないため、PDOのメソッドをオーバーライドする必要があります。
public boolean beginTransaction ( ) | ||
戻り値 | boolean |
トランザクション開始の結果。 |
---|
#[\ReturnTypeWillChange]
public function beginTransaction()
{
$this->exec('BEGIN TRANSACTION');
return true;
}
トランザクションをコミットします。MSSQL PDOドライバーはトランザクションをネイティブにサポートしていないため、PDOのメソッドをオーバーライドする必要があります。
public boolean commit ( ) | ||
戻り値 | boolean |
トランザクションコミットの結果。 |
---|
#[\ReturnTypeWillChange]
public function commit()
{
$this->exec('COMMIT TRANSACTION');
return true;
}
データベース接続属性を取得します。
一部のMSSQL PDOドライバー(例:dblib)は属性の取得をサポートしていないため、PDOのメソッドをオーバーライドする必要があります。
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;
}
}
}
最後に挿入された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();
}
サインアップまたはログインしてコメントしてください。