Make db_pconnect an alias for db_connect(TRUE) and reduce code repetition
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index aeeb2d0..7551e48 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -435,6 +435,18 @@
// --------------------------------------------------------------------
/**
+ * Persistent database connection
+ *
+ * @return resource
+ */
+ public function db_pconnect()
+ {
+ return $this->db_connect(TRUE);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Reconnect
*
* Keep / reestablish the db connection if no queries have been
diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php
index 0db5173..2e79faa 100644
--- a/system/database/drivers/cubrid/cubrid_driver.php
+++ b/system/database/drivers/cubrid/cubrid_driver.php
@@ -102,61 +102,23 @@
/**
* Non-persistent database connection
*
- * @return resource
- */
- public function db_connect()
- {
- return $this->_cubrid_connect();
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Persistent database connection
- *
- * In CUBRID persistent DB connection is supported natively in CUBRID
- * engine which can be configured in the CUBRID Broker configuration
- * file by setting the CCI_PCONNECT parameter to ON. In that case, all
- * connections established between the client application and the
- * server will become persistent.
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return $this->_cubrid_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * CUBRID connection
- *
- * A CUBRID-specific method to create a connection to the database.
- * Except for determining if a persistent connection should be used,
- * the rest of the logic is the same for db_connect() and db_pconnect().
- *
* @param bool $persistent
* @return resource
*/
- protected function _cubrid_connect($persistent = FALSE)
+ public function db_connect($persistent = FALSE)
{
if (preg_match('/^CUBRID:[^:]+(:[0-9][1-9]{0,4})?:[^:]+:([^:]*):([^:]*):(\?.+)?$/', $this->dsn, $matches))
{
- $_temp = ($persistent !== TRUE) ? 'cubrid_connect_with_url' : 'cubrid_pconnect_with_url';
- $conn_id = ($matches[2] === '' && $matches[3] === '' && $this->username !== '' && $this->password !== '')
- ? $_temp($this->dsn, $this->username, $this->password)
- : $_temp($this->dsn);
- }
- else
- {
- $_temp = ($persistent !== TRUE) ? 'cubrid_connect' : 'cubrid_pconnect';
- $conn_id = ($this->username !== '')
- ? $_temp($this->hostname, $this->port, $this->database, $this->username, $this->password)
- : $_temp($this->hostname, $this->port, $this->database);
+ $func = ($persistent !== TRUE) ? 'cubrid_connect_with_url' : 'cubrid_pconnect_with_url';
+ return ($matches[2] === '' && $matches[3] === '' && $this->username !== '' && $this->password !== '')
+ ? $func($this->dsn, $this->username, $this->password)
+ : $func($this->dsn);
}
- return $conn_id;
+ $func = ($persistent !== TRUE) ? 'cubrid_connect' : 'cubrid_pconnect';
+ return ($this->username !== '')
+ ? $func($this->hostname, $this->port, $this->database, $this->username, $this->password)
+ : $func($this->hostname, $this->port, $this->database);
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php
index 4cff5f4..c85b199 100644
--- a/system/database/drivers/ibase/ibase_driver.php
+++ b/system/database/drivers/ibase/ibase_driver.php
@@ -69,23 +69,14 @@
/**
* Non-persistent database connection
*
+ * @param bool $persistent
* @return resource
*/
- public function db_connect()
+ public function db_connect($persistent = FALSE)
{
- return @ibase_connect($this->hostname.':'.$this->database, $this->username, $this->password, $this->char_set);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return @ibase_pconnect($this->hostname.':'.$this->database, $this->username, $this->password, $this->char_set);
+ return ($persistent === TRUE)
+ ? @ibase_pconnect($this->hostname.':'.$this->database, $this->username, $this->password, $this->char_set)
+ : @ibase_connect($this->hostname.':'.$this->database, $this->username, $this->password, $this->char_set);
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 9e53d4e..075542a 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -130,18 +130,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Select the database
*
* @param string $database
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index 499d426..9fbd94c 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -146,18 +146,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Reconnect
*
* Keep / reestablish the db connection if no queries have been
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index 083b0c6..b2d0bcc 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -114,18 +114,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return object
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Reconnect
*
* Keep / reestablish the db connection if no queries have been
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index f309a82..7453db7 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -208,27 +208,15 @@
/**
* Non-persistent database connection
*
+ * @param bool $persistent
* @return resource
*/
- public function db_connect()
+ public function db_connect($persistent = FALSE)
{
- return ( ! empty($this->char_set))
- ? @oci_connect($this->username, $this->password, $this->dsn, $this->char_set)
- : @oci_connect($this->username, $this->password, $this->dsn);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
+ $func = ($persistent === TRUE) ? 'oci_pconnect' : 'oci_connect';
return empty($this->char_set)
- ? @oci_pconnect($this->username, $this->password, $this->dsn)
- : @oci_pconnect($this->username, $this->password, $this->dsn, $this->char_set);
+ ? $func($this->username, $this->password, $this->dsn)
+ : $func($this->username, $this->password, $this->dsn, $this->char_set);
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index 662a106..14c85c8 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -104,23 +104,14 @@
/**
* Non-persistent database connection
*
+ * @param bool $persistent
* @return resource
*/
- public function db_connect()
+ public function db_connect($persistent = FALSE)
{
- return @odbc_connect($this->dsn, $this->username, $this->password);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return @odbc_pconnect($this->dsn, $this->username, $this->password);
+ return ($persistent === TRUE)
+ ? odbc_pconnect($this->dsn, $this->username, $this->password)
+ : odbc_connect($this->dsn, $this->username, $this->password);
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php
index 49612b9..0173148 100644
--- a/system/database/drivers/pdo/pdo_driver.php
+++ b/system/database/drivers/pdo/pdo_driver.php
@@ -135,18 +135,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return object
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Database version number
*
* @return string
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index 7d17f79..1140d50 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -162,18 +162,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Reconnect
*
* Keep / reestablish the db connection if no queries have been
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index 9928aed..dd9e1e8 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -62,45 +62,17 @@
/**
* Non-persistent database connection
*
+ * @param bool $persistent
* @return resource
*/
- public function db_connect()
+ public function db_connect($persistent = FALSE)
{
- if ( ! $conn_id = @sqlite_open($this->database, FILE_WRITE_MODE, $error))
- {
- log_message('error', $error);
+ $error = NULL;
+ $conn_id = ($persistent === TRUE)
+ ? sqlite_popen($this->database, 0666, $error)
+ : sqlite_open($this->database, 0666, $error);
- if ($this->db_debug)
- {
- $this->display_error($error, '', TRUE);
- }
-
- return FALSE;
- }
-
- return $conn_id;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- if ( ! $conn_id = @sqlite_popen($this->database, FILE_WRITE_MODE, $error))
- {
- log_message('error', $error);
-
- if ($this->db_debug)
- {
- $this->display_error($error, '', TRUE);
- }
-
- return FALSE;
- }
+ isset($error) && log_message('error', $error);
return $conn_id;
}
diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php
index 30c38ec..a7d0d08 100644
--- a/system/database/drivers/sqlite3/sqlite3_driver.php
+++ b/system/database/drivers/sqlite3/sqlite3_driver.php
@@ -63,10 +63,16 @@
/**
* Non-persistent database connection
*
- * @return object type SQLite3
+ * @param bool $persistent
+ * @return SQLite3
*/
- public function db_connect()
+ public function db_connect($persistent = FALSE)
{
+ if ($persistent)
+ {
+ log_message('debug', 'SQLite3 doesn\'t support persistent connections');
+ }
+
try
{
return ( ! $this->password)
@@ -82,19 +88,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return object type SQLite3
- */
- public function db_pconnect()
- {
- log_message('debug', 'SQLite3 doesn\'t support persistent connections');
- return $this->db_connect();
- }
-
- // --------------------------------------------------------------------
-
- /**
* Database version number
*
* @return string
diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php
index a723b78..58f2e34 100644
--- a/system/database/drivers/sqlsrv/sqlsrv_driver.php
+++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php
@@ -144,18 +144,6 @@
// --------------------------------------------------------------------
/**
- * Persistent database connection
- *
- * @return resource
- */
- public function db_pconnect()
- {
- return $this->db_connect(TRUE);
- }
-
- // --------------------------------------------------------------------
-
- /**
* Select the database
*
* @param string $database