forked from sfedosimov/yii2-oci8pdo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Oci8PDO_Connection.php
56 lines (48 loc) · 1.89 KB
/
Oci8PDO_Connection.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
/**
* PDO Userspace Driver for Oracle (oci8)
*
* @category Database
* @package Pdo
* @subpackage Oci8
* @author Ben Ramsey <ramsey@php.net>
* @copyright Copyright (c) 2015 Ben Ramsey (http://benramsey.com/)
* @license http://open.benramsey.com/license/mit MIT License
*/
namespace sfedosimov\oci8pdo;
use Yii;
use yii\db\Connection;
use PDOException;
class Oci8PDO_Connection extends Connection
{
public $pdoClass = 'sfedosimov\oci8pdo\Oci8PDO';
/**
* Creates the PDO instance.
* When some functionalities are missing in the pdo driver, we may use
* an adapter class to provides them.
* @return \PDO the pdo instance
*/
protected function createPdoInstance()
{
if (!empty($this->charset)) {
Yii::trace('Error: Oci8PDO_Connection::$charset has been set to `' . $this->charset . '` in your config. The property is only used for MySQL and PostgreSQL databases. If you want to set the charset in Oracle to UTF8, add the following to the end of your Oci8PDO_Connection::$dsn: ;charset=AL32UTF8;',
'vendor\sfedosimov\yii2-oci8pdo\Oci8PDO_Connection');
}
try {
Yii::trace('Opening Oracle connection', 'vendor\sfedosimov\yii2-oci8pdo\Oci8PDO_Connection');
$pdoClass = parent::createPdoInstance();
} catch(PDOException $e) {
throw $e;
}
return $pdoClass;
}
/**
* Closes the currently active Oracle DB connection.
* It does nothing if the connection is already closed.
*/
public function close()
{
Yii::trace('Closing Oracle connection', 'vendor\sfedosimov\yii2-oci8pdo\Oci8PDO_Connection');
parent::close();
}
}