summaryrefslogtreecommitdiffstats
path: root/system/database/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'system/database/drivers')
-rw-r--r--system/database/drivers/mssql/mssql_driver.php109
-rw-r--r--system/database/drivers/mysql/mysql_driver.php124
-rw-r--r--system/database/drivers/mysqli/mysqli_driver.php119
-rw-r--r--system/database/drivers/oci8/oci8_driver.php121
-rw-r--r--system/database/drivers/odbc/odbc_driver.php107
-rw-r--r--system/database/drivers/postgre/postgre_driver.php117
-rw-r--r--system/database/drivers/sqlite/sqlite_driver.php149
7 files changed, 426 insertions, 420 deletions
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 4f668f282..cd808da46 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -251,10 +251,10 @@ class CI_DB_mssql_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
// Are errros even supported in MS SQL?
return '';
@@ -265,10 +265,10 @@ class CI_DB_mssql_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
// Are error numbers supported?
return '';
@@ -282,11 +282,11 @@ class CI_DB_mssql_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -294,25 +294,7 @@ class CI_DB_mssql_driver extends CI_DB {
}
return $table;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT TOP 1 FROM ".$this->escape_table($table);
- $query = $this->query($sql);
- return $query->field_data();
- }
+ }
// --------------------------------------------------------------------
@@ -329,7 +311,7 @@ class CI_DB_mssql_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -352,7 +334,7 @@ class CI_DB_mssql_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -369,9 +351,43 @@ class CI_DB_mssql_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ $i = $limit + $offset;
+ return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ mssql_close($conn_id);
+ }
+
// --------------------------------------------------------------------
/**
@@ -413,43 +429,28 @@ class CI_DB_mssql_driver extends CI_DB {
*/
function _show_columns($table = '')
{
- return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$this->escape_table($table)."'";
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Limit string
- *
- * Generates a platform-specific LIMIT clause
- *
- * @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
- */
- function _limit($sql, $limit, $offset)
- {
- $i = $limit + $offset;
-
- return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql);
+ return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$this->_escape_table($table)."'";
}
// --------------------------------------------------------------------
/**
- * Close DB Connection
+ * Field data query
+ *
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param resource
- * @return void
+ * @param string the table name
+ * @return object
*/
- function _close($conn_id)
+ function _field_data($table)
{
- mssql_close($conn_id);
+ $sql = "SELECT TOP 1 FROM ".$this->_escape_table($table);
+ $query = $this->query($sql);
+ return $query->field_data();
}
+
}
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index 8aa82da72..fc7f6780b 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -269,10 +269,10 @@ class CI_DB_mysql_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
return mysql_error($this->conn_id);
}
@@ -282,10 +282,10 @@ class CI_DB_mysql_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
return mysql_errno($this->conn_id);
}
@@ -298,11 +298,11 @@ class CI_DB_mysql_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -311,25 +311,7 @@ class CI_DB_mysql_driver extends CI_DB {
return $table;
}
-
- // --------------------------------------------------------------------
-
- /**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT * FROM ".$this->escape_table($table)." LIMIT 1";
- $query = $this->query($sql);
- return $query->field_data();
- }
-
+
// --------------------------------------------------------------------
/**
@@ -345,7 +327,7 @@ class CI_DB_mysql_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -368,7 +350,7 @@ class CI_DB_mysql_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -385,9 +367,50 @@ class CI_DB_mysql_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
-
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ if ($offset == 0)
+ {
+ $offset = '';
+ }
+ else
+ {
+ $offset .= ", ";
+ }
+
+ return $sql."LIMIT ".$offset.$limit;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ mysql_close($conn_id);
+ }
+
// --------------------------------------------------------------------
/**
@@ -429,48 +452,25 @@ class CI_DB_mysql_driver extends CI_DB {
*/
function _show_columns($table = '')
{
- return "SHOW COLUMNS FROM ".$this->escape_table($table);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Limit string
- *
- * Generates a platform-specific LIMIT clause
- *
- * @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
- */
- function _limit($sql, $limit, $offset)
- {
- if ($offset == 0)
- {
- $offset = '';
- }
- else
- {
- $offset .= ", ";
- }
-
- return $sql."LIMIT ".$offset.$limit;
+ return "SHOW COLUMNS FROM ".$this->_escape_table($table);
}
// --------------------------------------------------------------------
/**
- * Close DB Connection
+ * Field data query
+ *
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param resource
- * @return void
+ * @param string the table name
+ * @return object
*/
- function _close($conn_id)
+ function _field_data($table)
{
- mysql_close($conn_id);
+ $sql = "SELECT * FROM ".$this->_escape_table($table)." LIMIT 1";
+ $query = $this->query($sql);
+ return $query->field_data();
}
}
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index 8d28c2c5f..959384164 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -272,10 +272,10 @@ class CI_DB_mysqli_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
return mysqli_error($this->conn_id);
}
@@ -285,10 +285,10 @@ class CI_DB_mysqli_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
return mysqli_errno($this->conn_id);
}
@@ -301,11 +301,11 @@ class CI_DB_mysqli_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -314,25 +314,7 @@ class CI_DB_mysqli_driver extends CI_DB {
return $table;
}
-
- // --------------------------------------------------------------------
-
- /**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT * FROM ".$this->escape_table($table)." LIMIT 1";
- $query = $this->query($sql);
- return $query->field_data();
- }
-
+
// --------------------------------------------------------------------
/**
@@ -348,7 +330,7 @@ class CI_DB_mysqli_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -371,7 +353,7 @@ class CI_DB_mysqli_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -388,9 +370,48 @@ class CI_DB_mysqli_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ $sql .= "LIMIT ".$limit;
+ if ($offset > 0)
+ {
+ $sql .= " OFFSET ".$offset;
+ }
+
+ return $sql;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ mysqli_close($conn_id);
+ }
+
// --------------------------------------------------------------------
/**
@@ -432,47 +453,27 @@ class CI_DB_mysqli_driver extends CI_DB {
*/
function _show_columns($table = '')
{
- return "SHOW COLUMNS FROM ".$this->escape_table($table);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Limit string
- *
- * Generates a platform-specific LIMIT clause
- *
- * @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
- */
- function _limit($sql, $limit, $offset)
- {
- $sql .= "LIMIT ".$limit;
-
- if ($offset > 0)
- {
- $sql .= " OFFSET ".$offset;
- }
-
- return $sql;
+ return "SHOW COLUMNS FROM ".$this->_escape_table($table);
}
// --------------------------------------------------------------------
/**
- * Close DB Connection
+ * Field data query
+ *
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param resource
- * @return void
+ * @param string the table name
+ * @return object
*/
- function _close($conn_id)
+ function _field_data($table)
{
- mysqli_close($conn_id);
+ $sql = "SELECT * FROM ".$this->_escape_table($table)." LIMIT 1";
+ $query = $this->query($sql);
+ return $query->field_data();
}
+
}
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 707394d53..bfc38a435 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -393,10 +393,10 @@ class CI_DB_oci8_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
$error = ocierror($this->conn_id);
return $error['message'];
@@ -407,10 +407,10 @@ class CI_DB_oci8_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
$error = ocierror($this->conn_id);
return $error['code'];
@@ -424,11 +424,11 @@ class CI_DB_oci8_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -441,24 +441,6 @@ class CI_DB_oci8_driver extends CI_DB {
// --------------------------------------------------------------------
/**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT * FROM ".$this->escape_table($table)." where rownum = 1";
- $query = $this->query($sql);
- return $query->field_data();
- }
-
- // --------------------------------------------------------------------
-
- /**
* Insert statement
*
* Generates a platform-specific insert string from the supplied data
@@ -471,7 +453,7 @@ class CI_DB_oci8_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -494,7 +476,7 @@ class CI_DB_oci8_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -511,7 +493,50 @@ class CI_DB_oci8_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ $limit = $offset + $limit;
+ $newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)";
+
+ if ($offset != 0)
+ {
+ $newsql .= " WHERE rnum >= $offset";
+ }
+
+ // remember that we used limits
+ $this->limit_used = TRUE;
+
+ return $newsql;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ ocilogoff($conn_id);
}
// --------------------------------------------------------------------
@@ -562,46 +587,22 @@ class CI_DB_oci8_driver extends CI_DB {
// --------------------------------------------------------------------
/**
- * Limit string
- *
- * Generates a platform-specific LIMIT clause
+ * Field data query
*
- * @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
- */
- function _limit($sql, $limit, $offset)
- {
- $limit = $offset + $limit;
- $newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)";
-
- if ($offset != 0)
- {
- $newsql .= " WHERE rnum >= $offset";
- }
-
- // remember that we used limits
- $this->limit_used = TRUE;
-
- return $newsql;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Close DB Connection
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param resource
- * @return void
+ * @param string the table name
+ * @return object
*/
- function _close($conn_id)
+ function _field_data($table)
{
- ocilogoff($conn_id);
+ $sql = "SELECT * FROM ".$this->_escape_table($table)." where rownum = 1";
+ $query = $this->query($sql);
+ return $query->field_data();
}
+
}
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index 1725ed743..c05abd082 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -252,10 +252,10 @@ class CI_DB_odbc_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
return odbc_errormsg($this->conn_id);
}
@@ -265,10 +265,10 @@ class CI_DB_odbc_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
return odbc_error($this->conn_id);
}
@@ -281,11 +281,11 @@ class CI_DB_odbc_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -294,25 +294,7 @@ class CI_DB_odbc_driver extends CI_DB {
return $table;
}
-
- // --------------------------------------------------------------------
-
- /**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT TOP 1 FROM ".$this->escape_table($table);
- $query = $this->query($sql);
- return $query->field_data();
- }
-
+
// --------------------------------------------------------------------
/**
@@ -328,7 +310,7 @@ class CI_DB_odbc_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -351,7 +333,7 @@ class CI_DB_odbc_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -368,9 +350,42 @@ class CI_DB_odbc_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
-
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ // Does ODBC doesn't use the LIMIT clause?
+ return $sql;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ odbc_close($conn_id);
+ }
+
// --------------------------------------------------------------------
/**
@@ -412,41 +427,27 @@ class CI_DB_odbc_driver extends CI_DB {
*/
function _show_columns($table = '')
{
- return "SHOW COLUMNS FROM ".$this->escape_table($table);
+ return "SHOW COLUMNS FROM ".$this->_escape_table($table);
}
-
+
// --------------------------------------------------------------------
/**
- * Limit string
+ * Field data query
*
- * Generates a platform-specific LIMIT clause
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
+ * @param string the table name
+ * @return object
*/
- function _limit($sql, $limit, $offset)
+ function _field_data($table)
{
- // Does ODBC doesn't use the LIMIT clause?
- return $sql;
+ $sql = "SELECT TOP 1 FROM ".$this->_escape_table($table);
+ $query = $this->query($sql);
+ return $query->field_data();
}
- // --------------------------------------------------------------------
-
- /**
- * Close DB Connection
- *
- * @access public
- * @param resource
- * @return void
- */
- function _close($conn_id)
- {
- odbc_close($conn_id);
- }
}
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index 92767c42b..03817188f 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -279,10 +279,10 @@ class CI_DB_postgre_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
return pg_last_error($this->conn_id);
}
@@ -292,10 +292,10 @@ class CI_DB_postgre_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
return '';
}
@@ -308,11 +308,11 @@ class CI_DB_postgre_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped.
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -325,24 +325,6 @@ class CI_DB_postgre_driver extends CI_DB {
// --------------------------------------------------------------------
/**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT * FROM ".$this->escape_table($table)." LIMIT 1";
- $query = $this->query($sql);
- return $query->field_data();
- }
-
- // --------------------------------------------------------------------
-
- /**
* Insert statement
*
* Generates a platform-specific insert string from the supplied data
@@ -355,7 +337,7 @@ class CI_DB_postgre_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -378,7 +360,7 @@ class CI_DB_postgre_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -395,9 +377,48 @@ class CI_DB_postgre_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Limit string
+ *
+ * Generates a platform-specific LIMIT clause
+ *
+ * @access public
+ * @param string the sql query string
+ * @param integer the number of rows to limit the query to
+ * @param integer the offset value
+ * @return string
+ */
+ function _limit($sql, $limit, $offset)
+ {
+ $sql .= "LIMIT ".$limit;
+ if ($offset > 0)
+ {
+ $sql .= " OFFSET ".$offset;
+ }
+
+ return $sql;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Close DB Connection
+ *
+ * @access public
+ * @param resource
+ * @return void
+ */
+ function _close($conn_id)
+ {
+ pg_close($conn_id);
+ }
+
// --------------------------------------------------------------------
/**
@@ -437,48 +458,28 @@ class CI_DB_postgre_driver extends CI_DB {
*/
function _show_columns($table = '')
{
- return "SELECT column_name FROM information_schema.columns WHERE table_name ='".$this->escape_table($table)."'";
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Limit string
- *
- * Generates a platform-specific LIMIT clause
- *
- * @access public
- * @param string the sql query string
- * @param integer the number of rows to limit the query to
- * @param integer the offset value
- * @return string
- */
- function _limit($sql, $limit, $offset)
- {
- $sql .= "LIMIT ".$limit;
-
- if ($offset > 0)
- {
- $sql .= " OFFSET ".$offset;
- }
-
- return $sql;
+ return "SELECT column_name FROM information_schema.columns WHERE table_name ='".$this->_escape_table($table)."'";
}
// --------------------------------------------------------------------
/**
- * Close DB Connection
+ * Field data query
+ *
+ * Generates a platform-specific query so that the column data can be retrieved
*
* @access public
- * @param resource
- * @return void
+ * @param string the table name
+ * @return object
*/
- function _close($conn_id)
+ function _field_data($table)
{
- pg_close($conn_id);
+ $sql = "SELECT * FROM ".$this->_escape_table($table)." LIMIT 1";
+ $query = $this->query($sql);
+ return $query->field_data();
}
+
}
?> \ No newline at end of file
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index 634b72ed4..f8318b814 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -271,10 +271,10 @@ class CI_DB_sqlite_driver extends CI_DB {
/**
* The error message string
*
- * @access public
+ * @access private
* @return string
*/
- function error_message()
+ function _error_message()
{
return sqlite_error_string(sqlite_last_error($this->conn_id));
}
@@ -284,27 +284,14 @@ class CI_DB_sqlite_driver extends CI_DB {
/**
* The error message number
*
- * @access public
+ * @access private
* @return integer
*/
- function error_number()
+ function _error_number()
{
return sqlite_last_error($this->conn_id);
}
-
- // --------------------------------------------------------------------
-
- /**
- * Version number query string
- *
- * @access public
- * @return string
- */
- function version()
- {
- return sqlite_libversion();
- }
-
+
// --------------------------------------------------------------------
/**
@@ -313,11 +300,11 @@ class CI_DB_sqlite_driver extends CI_DB {
* This function adds backticks if the table name has a period
* in it. Some DBs will get cranky unless periods are escaped
*
- * @access public
+ * @access private
* @param string the table name
* @return string
*/
- function escape_table($table)
+ function _escape_table($table)
{
if (stristr($table, '.'))
{
@@ -326,25 +313,7 @@ class CI_DB_sqlite_driver extends CI_DB {
return $table;
}
-
- // --------------------------------------------------------------------
-
- /**
- * Field data query
- *
- * Generates a platform-specific query so that the column data can be retrieved
- *
- * @access public
- * @param string the table name
- * @return object
- */
- function _field_data($table)
- {
- $sql = "SELECT * FROM ".$this->escape_table($table)." LIMIT 1";
- $query = $this->query($sql);
- return $query->field_data();
- }
-
+
// --------------------------------------------------------------------
/**
@@ -360,7 +329,7 @@ class CI_DB_sqlite_driver extends CI_DB {
*/
function _insert($table, $keys, $values)
{
- return "INSERT INTO ".$this->escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+ return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
// --------------------------------------------------------------------
@@ -383,7 +352,7 @@ class CI_DB_sqlite_driver extends CI_DB {
$valstr[] = $key." = ".$val;
}
- return "UPDATE ".$this->escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+ return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
}
// --------------------------------------------------------------------
@@ -400,41 +369,9 @@ class CI_DB_sqlite_driver extends CI_DB {
*/
function _delete($table, $where)
{
- return "DELETE FROM ".$this->escape_table($table)." WHERE ".implode(" ", $where);
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Show table query
- *
- * Generates a platform-specific query string so that the table names can be fetched
- *
- * @access public
- * @return string
- */
- function _show_tables()
- {
- return "SELECT name from sqlite_master WHERE type='table'";
+ return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
}
-
- // --------------------------------------------------------------------
- /**
- * Show columnn query
- *
- * Generates a platform-specific query string so that the column names can be fetched
- *
- * @access public
- * @param string the table name
- * @return string
- */
- function _show_columns($table = '')
- {
- // Not supported
- return FALSE;
- }
-
// --------------------------------------------------------------------
/**
@@ -476,6 +413,70 @@ class CI_DB_sqlite_driver extends CI_DB {
sqlite_close($conn_id);
}
+ // --------------------------------------------------------------------
+
+ /**
+ * Version number query string
+ *
+ * @access public
+ * @return string
+ */
+ function _version()
+ {
+ return sqlite_libversion();
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Show table query
+ *
+ * Generates a platform-specific query string so that the table names can be fetched
+ *
+ * @access public
+ * @return string
+ */
+ function _show_tables()
+ {
+ return "SELECT name from sqlite_master WHERE type='table'";
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Show columnn query
+ *
+ * Generates a platform-specific query string so that the column names can be fetched
+ *
+ * @access public
+ * @param string the table name
+ * @return string
+ */
+ function _show_columns($table = '')
+ {
+ // Not supported
+ return FALSE;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Field data query
+ *
+ * Generates a platform-specific query so that the column data can be retrieved
+ *
+ * @access public
+ * @param string the table name
+ * @return object
+ */
+ function _field_data($table)
+ {
+ $sql = "SELECT * FROM ".$this->_escape_table($table)." LIMIT 1";
+ $query = $this->query($sql);
+ return $query->field_data();
+ }
+
+
}
?> \ No newline at end of file