function __construct($params) { parent::__construct($params); if (preg_match('/([^;]+):/', $this->dsn, $match) && count($match) == 2) { // If there is a minimum valid dsn string pattern found, we're done // This is for general PDO users, who tend to have a full DSN string. $this->pdodriver = end($match); } else { // Try to build a complete DSN string from params $this->_connect_string($params); } // clause and character used for LIKE escape sequences // this one depends on the driver being used if ($this->pdodriver == 'mysql') { $this->_like_escape_str = ''; $this->_like_escape_chr = ''; } elseif ($this->pdodriver == 'odbc') { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; } else { $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } $this->trans_enabled = FALSE; $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }
/** * Class constructor * * Appends the port number to the hostname, if needed. * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (!empty($this->port)) { $this->hostname .= (DIRECTORY_SEPARATOR === '\\' ? ',' : ':') . $this->port; } }
function __construct($params) { parent::__construct($params); // clause and character used for LIKE escape sequences if (strpos($this->hostname, 'mysql') !== FALSE) { $this->_like_escape_str = ''; $this->_like_escape_chr = ''; //Prior to this version, the charset can't be set in the dsn if (is_php('5.3.6')) { $this->hostname .= ";charset={$this->char_set}"; } //Set the charset with the connection options $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; } elseif (strpos($this->hostname, 'odbc') !== FALSE) { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; } else { $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } empty($this->database) or $this->hostname .= ';dbname=' . $this->database; $this->trans_enabled = FALSE; $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }
/** * Class constructor * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (!empty($this->port)) { $this->hostname .= ':' . $this->port; } }
function __construct($params) { parent::__construct($params); // clause and character used for LIKE escape sequences if (strpos($this->hostname, 'mysql') !== FALSE) { $this->_like_escape_str = ''; $this->_like_escape_chr = ''; //Prior to this version, the charset can't be set in the dsn if (is_php('5.3.6')) { $this->hostname .= ";charset={$this->char_set}"; } //Set the charset with the connection options $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; } elseif (strpos($this->hostname, 'odbc') !== FALSE) { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; } else { $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } /** * @link http://stackoverflow.com/questions/11054618/codeigniter-pdo-database-driver-not-working */ // empty($this->database) OR $this->hostname .= ';dbname='.$this->database; $this->hostname = 'mysql:dbname=' . $this->database . ';host=' . $this->hostname; $this->trans_enabled = FALSE; $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }
/** * Class constructor * * Validates the DSN string and/or detects the subdriver. * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (preg_match('/([^:]+):/', $this->dsn, $match) && count($match) === 2) { // If there is a minimum valid dsn string pattern found, we're done // This is for general PDO users, who tend to have a full DSN string. $this->subdriver = $match[1]; return; } elseif (preg_match('/([^:]+):/', $this->hostname, $match) && count($match) === 2) { $this->dsn = $this->hostname; $this->hostname = NULL; $this->subdriver = $match[1]; return; } elseif (in_array($this->subdriver, array('mssql', 'sybase'), TRUE)) { $this->subdriver = 'dblib'; } elseif ($this->subdriver === '4D') { $this->subdriver = '4d'; } elseif (!in_array($this->subdriver, array('4d', 'cubrid', 'dblib', 'firebird', 'ibm', 'informix', 'mysql', 'oci', 'odbc', 'pgsql', 'sqlite', 'sqlsrv'), TRUE)) { log_message('error', 'PDO: Invalid or non-existent subdriver'); if ($this->db_debug) { show_error('Invalid or non-existent PDO subdriver'); } } $this->dsn = NULL; }
/** * Class constructor * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); // This is only supported as of SQLSRV 3.0 if ($this->scrollable === NULL) { $this->scrollable = defined('SQLSRV_CURSOR_CLIENT_BUFFERED') ? SQLSRV_CURSOR_CLIENT_BUFFERED : FALSE; } }
/** * Class constructor * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); // Legacy support for DSN in the hostname field if (empty($this->dsn)) { $this->dsn = $this->hostname; } }
/** * Class constructor * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword // Legacy support for DSN in the hostname field if (empty($this->dsn)) { $this->dsn = $this->hostname; } }
/** * Class constructor * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (preg_match('/^CUBRID:[^:]+(:[0-9][1-9]{0,4})?:[^:]+:[^:]*:[^:]*:(\\?.+)?$/', $this->dsn, $matches)) { if (stripos($matches[2], 'autocommit=off') !== FALSE) { $this->auto_commit = FALSE; } } else { // If no port is defined by the user, use the default value empty($this->port) or $this->port = 33000; } }
public function __construct($params) { parent::__construct($params); $valid_dsns = array('tns' => '/^\\(DESCRIPTION=(\\(.+\\)){2,}\\)$/', 'ec' => '/^(\\/\\/)?[a-z0-9.:_-]+(:[1-9][0-9]{0,4})?(\\/[a-z0-9$_]+)?(:[^\\/])?(\\/[a-z0-9$_]+)?$/i', 'in' => '/^[a-z0-9$_]+$/i'); /* Space characters don't have any effect when actually * connecting, but can be a hassle while validating the DSN. */ $this->dsn = str_replace(array("\n", "\r", "\t", ' '), '', $this->dsn); if ($this->dsn !== '') { foreach ($valid_dsns as $regexp) { if (preg_match($regexp, $this->dsn)) { return; } } } // Legacy support for TNS in the hostname configuration field $this->hostname = str_replace(array("\n", "\r", "\t", ' '), '', $this->hostname); if (preg_match($valid_dsns['tns'], $this->hostname)) { $this->dsn = $this->hostname; return; } elseif ($this->hostname !== '' && strpos($this->hostname, '/') === FALSE && strpos($this->hostname, ':') === FALSE && (!empty($this->port) && ctype_digit($this->port) or $this->database !== '')) { /* If the hostname field isn't empty, doesn't contain * ':' and/or '/' and if port and/or database aren't * empty, then the hostname field is most likely indeed * just a hostname. Therefore we'll try and build an * Easy Connect string from these 3 settings, assuming * that the database field is a service name. */ $this->dsn = $this->hostname . (!empty($this->port) && ctype_digit($this->port) ? ':' . $this->port : '') . ($this->database !== '' ? '/' . ltrim($this->database, '/') : ''); if (preg_match($valid_dsns['ec'], $this->dsn)) { return; } } /* At this point, we can only try and validate the hostname and * database fields separately as DSNs. */ if (preg_match($valid_dsns['ec'], $this->hostname) or preg_match($valid_dsns['in'], $this->hostname)) { $this->dsn = $this->hostname; return; } $this->database = str_replace(array("\n", "\r", "\t", ' '), '', $this->database); foreach ($valid_dsns as $regexp) { if (preg_match($regexp, $this->database)) { return; } } /* Well - OK, an empty string should work as well. * PHP will try to use environment variables to * determine which Oracle instance to connect to. */ $this->dsn = ''; }
/** * Class constructor * * Validates the DSN string and/or detects the subdriver. * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (preg_match('/([^:]+):/', $this->dsn, $match) && count($match) === 2) { // If there is a minimum valid dsn string pattern found, we're done // This is for general PDO users, who tend to have a full DSN string. $this->subdriver = $match[1]; return; } elseif (in_array($this->subdriver, array('mssql', 'sybase'), TRUE)) { $this->subdriver = 'dblib'; } elseif ($this->subdriver === '4D') { $this->subdriver = '4d'; } $this->dsn = NULL; }
function __construct($params) { parent::__construct($params); // clause and character used for LIKE escape sequences if (strpos($this->hostname, 'mysql') !== FALSE) { $this->_like_escape_str = ''; $this->_like_escape_chr = ''; } else { if (strpos($this->hostname, 'odbc') !== FALSE) { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; } else { $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } } $this->hostname = $this->hostname . ";dbname=" . $this->database; $this->trans_enabled = FALSE; $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }
/** * Class constructor * * Creates a DSN string to be used for db_connect() and db_pconnect() * * @param array $params * @return void */ public function __construct($params) { parent::__construct($params); if (!empty($this->dsn)) { return; } $this->dsn === '' or $this->dsn = ''; if (strpos($this->hostname, '/') !== FALSE) { // If UNIX sockets are used, we shouldn't set a port $this->port = ''; } $this->hostname === '' or $this->dsn = 'host=' . $this->hostname . ' '; if (!empty($this->port) && ctype_digit($this->port)) { $this->dsn .= 'port=' . $this->port . ' '; } if ($this->username !== '') { $this->dsn .= 'user='******' '; /* * An empty password is valid! * * $db['password'] = NULL must be done in order to ignore it. */ $this->password === NULL or $this->dsn .= "password='******' "; } $this->database === '' or $this->dsn .= 'dbname=' . $this->database . ' '; /* * We don't have these options as elements in our standard configuration * array, but they might be set by parse_url() if the configuration was * provided via string. Example: * * postgre://username:password@localhost:5432/database?connect_timeout=5&sslmode=1 */ foreach (array('connect_timeout', 'options', 'sslmode', 'service') as $key) { if (isset($this->{$key}) && is_string($this->key) && $this->key !== '') { $this->dsn .= $key . "='" . $this->key . "' "; } } $this->dsn = rtrim($this->dsn); }
function CI_DB_odbc_driver($params) { parent::__construct($params); $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }
public function __construct($params) { parent::__construct($params); $this->connection_string(); }
function __construct($params) { parent::__construct($params); $this->_random_keyword = ' RND(' . Startup::getRequestTime() . ')'; // database specific random keyword }
function __construct($params) { parent::__construct($params); if (strpos($this->hostname, 'mysql') !== FALSE) { $this->_like_escape_str = ''; $this->_like_escape_chr = ''; if (is_php('5.3.6')) { $this->hostname .= ";charset={$this->char_set}"; } $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; } elseif (strpos($this->hostname, 'odbc') !== FALSE) { $this->_like_escape_str = " {escape '%s'} "; $this->_like_escape_chr = '!'; } else { $this->_like_escape_str = " ESCAPE '%s' "; $this->_like_escape_chr = '!'; } empty($this->database) or $this->hostname .= ';dbname=' . $this->database; $this->trans_enabled = FALSE; $this->_random_keyword = ' RND(' . time() . ')'; }
public function __construct($params) { parent::__construct($params); $this->_random_keyword = ' RND(' . time() . ')'; // database specific random keyword }