NukeViet\Core\Database::__construct PHP Method

__construct() public method

public __construct ( array $config )
$config array
    public function __construct($config)
    {
        $_alldbtype = array('mysql', 'pgsql', 'mssql', 'sybase', 'dblib');
        $driver_options = array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_PERSISTENT => $config['persistent'], PDO::ATTR_CASE => PDO::CASE_LOWER, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
        if (in_array($config['dbtype'], $_alldbtype)) {
            $dsn = $config['dbtype'] . ':dbname=' . $config['dbname'] . ';host=' . $config['dbhost'] . ';charset=' . $config['charset'];
            if (!empty($config['dbport'])) {
                $dsn .= ';port=' . $config['dbport'];
            }
            $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        } elseif ($config['dbtype'] == 'oci') {
            $dsn = 'oci:dbname=//' . $config['dbhost'] . ':' . $config['dbport'] . '/' . $config['dbname'] . ';charset=AL32UTF8';
            $driver_options[PDO::ATTR_STRINGIFY_FETCHES] = true;
        } elseif ($config['dbtype'] == 'sqlite') {
            $dsn = 'sqlite:' . $config['dbname'];
        } else {
            trigger_error($config['dbtype'] . ' is not supported', 256);
        }
        $this->server = $config['dbhost'];
        $this->dbtype = $config['dbtype'];
        $this->dbname = $config['dbname'];
        $this->user = $config['dbuname'];
        try {
            parent::__construct($dsn, $config['dbuname'], $config['dbpass'], $driver_options);
            parent::exec("SET SESSION time_zone='" . NV_SITE_TIMEZONE_GMT_NAME . "'");
            $this->connect = 1;
        } catch (PDOException $e) {
            trigger_error($e->getMessage());
        }
    }