summaryrefslogtreecommitdiffstats
path: root/system/database/drivers/mysql/mysql_driver.php
diff options
context:
space:
mode:
authorPascal Kriete <pascal.kriete@ellislab.com>2010-11-04 22:59:52 +0100
committerPascal Kriete <pascal.kriete@ellislab.com>2010-11-04 22:59:52 +0100
commite917f9be8b05c81357c1c2c9730d5060685d644d (patch)
treeb6a7d5ce8ba57b69ba61454f77829b04f2ce5974 /system/database/drivers/mysql/mysql_driver.php
parent5b2d2da5ae2e97043c6bef53e565d30e50196e2b (diff)
parente1f6e9ddff788f6a154f5f35dc117d14aeb0c484 (diff)
Automated merge with http://hg.ellislab.com/CodeIgniter2
Diffstat (limited to 'system/database/drivers/mysql/mysql_driver.php')
-rw-r--r--system/database/drivers/mysql/mysql_driver.php144
1 files changed, 72 insertions, 72 deletions
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index d684c8a49..cb985a764 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -43,9 +43,9 @@ class CI_DB_mysql_driver extends CI_DB {
* Whether to use the MySQL "delete hack" which allows the number
* of affected rows to be shown. Uses a preg_replace when enabled,
* adding a bit more processing to all queries.
- */
+ */
var $delete_hack = TRUE;
-
+
/**
* The syntax to count rows is slightly different across different
* database engines, so this string appears in each driver and is
@@ -59,17 +59,17 @@ class CI_DB_mysql_driver extends CI_DB {
*
* @access private called by the base class
* @return resource
- */
+ */
function db_connect()
{
if ($this->port != '')
{
$this->hostname .= ':'.$this->port;
}
-
+
return @mysql_connect($this->hostname, $this->username, $this->password, TRUE);
}
-
+
// --------------------------------------------------------------------
/**
@@ -77,7 +77,7 @@ class CI_DB_mysql_driver extends CI_DB {
*
* @access private called by the base class
* @return resource
- */
+ */
function db_pconnect()
{
if ($this->port != '')
@@ -87,7 +87,7 @@ class CI_DB_mysql_driver extends CI_DB {
return @mysql_pconnect($this->hostname, $this->username, $this->password);
}
-
+
// --------------------------------------------------------------------
/**
@@ -108,13 +108,13 @@ class CI_DB_mysql_driver extends CI_DB {
}
// --------------------------------------------------------------------
-
+
/**
* Select the database
*
* @access private called by the base class
* @return resource
- */
+ */
function db_select()
{
return @mysql_select_db($this->database, $this->conn_id);
@@ -136,7 +136,7 @@ class CI_DB_mysql_driver extends CI_DB {
}
// --------------------------------------------------------------------
-
+
/**
* Version number query string
*
@@ -156,13 +156,13 @@ class CI_DB_mysql_driver extends CI_DB {
* @access private called by the base class
* @param string an SQL query
* @return resource
- */
+ */
function _execute($sql)
{
$sql = $this->_prep_query($sql);
return @mysql_query($sql, $this->conn_id);
}
-
+
// --------------------------------------------------------------------
/**
@@ -173,7 +173,7 @@ class CI_DB_mysql_driver extends CI_DB {
* @access private called by execute()
* @param string an SQL query
* @return string
- */
+ */
function _prep_query($sql)
{
// "DELETE FROM TABLE" returns 0 affected rows This hack modifies
@@ -185,7 +185,7 @@ class CI_DB_mysql_driver extends CI_DB {
$sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql);
}
}
-
+
return $sql;
}
@@ -195,15 +195,15 @@ class CI_DB_mysql_driver extends CI_DB {
* Begin Transaction
*
* @access public
- * @return bool
- */
+ * @return bool
+ */
function trans_begin($test_mode = FALSE)
{
if ( ! $this->trans_enabled)
{
return TRUE;
}
-
+
// When transactions are nested we only begin/commit/rollback the outermost ones
if ($this->_trans_depth > 0)
{
@@ -214,7 +214,7 @@ class CI_DB_mysql_driver extends CI_DB {
// If the $test_mode flag is set to TRUE transactions will be rolled back
// even if the queries produce a successful result.
$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
-
+
$this->simple_query('SET AUTOCOMMIT=0');
$this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK
return TRUE;
@@ -226,8 +226,8 @@ class CI_DB_mysql_driver extends CI_DB {
* Commit Transaction
*
* @access public
- * @return bool
- */
+ * @return bool
+ */
function trans_commit()
{
if ( ! $this->trans_enabled)
@@ -252,8 +252,8 @@ class CI_DB_mysql_driver extends CI_DB {
* Rollback Transaction
*
* @access public
- * @return bool
- */
+ * @return bool
+ */
function trans_rollback()
{
if ( ! $this->trans_enabled)
@@ -271,7 +271,7 @@ class CI_DB_mysql_driver extends CI_DB {
$this->simple_query('SET AUTOCOMMIT=1');
return TRUE;
}
-
+
// --------------------------------------------------------------------
/**
@@ -282,17 +282,17 @@ class CI_DB_mysql_driver extends CI_DB {
* @param bool whether or not the string will be used in a LIKE condition
* @return string
*/
- function escape_str($str, $like = FALSE)
- {
+ function escape_str($str, $like = FALSE)
+ {
if (is_array($str))
{
foreach($str as $key => $val)
- {
+ {
$str[$key] = $this->escape_str($val, $like);
- }
-
- return $str;
- }
+ }
+
+ return $str;
+ }
if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id))
{
@@ -306,16 +306,16 @@ class CI_DB_mysql_driver extends CI_DB {
{
$str = addslashes($str);
}
-
+
// escape LIKE condition wildcards
if ($like === TRUE)
{
$str = str_replace(array('%', '_'), array('\\%', '\\_'), $str);
}
-
+
return $str;
}
-
+
// --------------------------------------------------------------------
/**
@@ -328,7 +328,7 @@ class CI_DB_mysql_driver extends CI_DB {
{
return @mysql_affected_rows($this->conn_id);
}
-
+
// --------------------------------------------------------------------
/**
@@ -360,7 +360,7 @@ class CI_DB_mysql_driver extends CI_DB {
{
return 0;
}
-
+
$query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE));
if ($query->num_rows() == 0)
@@ -385,7 +385,7 @@ class CI_DB_mysql_driver extends CI_DB {
*/
function _list_tables($prefix_limit = FALSE)
{
- $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;
+ $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;
if ($prefix_limit !== FALSE AND $this->dbprefix != '')
{
@@ -394,7 +394,7 @@ class CI_DB_mysql_driver extends CI_DB {
return $sql;
}
-
+
// --------------------------------------------------------------------
/**
@@ -439,7 +439,7 @@ class CI_DB_mysql_driver extends CI_DB {
{
return mysql_error($this->conn_id);
}
-
+
// --------------------------------------------------------------------
/**
@@ -475,26 +475,26 @@ class CI_DB_mysql_driver extends CI_DB {
{
if (strpos($item, '.'.$id) !== FALSE)
{
- $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
-
+ $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
// remove duplicates if the user already included the escape
return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
- }
+ }
}
-
+
if (strpos($item, '.') !== FALSE)
{
- $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
+ $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
}
else
{
$str = $this->_escape_char.$item.$this->_escape_char;
}
-
+
// remove duplicates if the user already included the escape
return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
}
-
+
// --------------------------------------------------------------------
/**
@@ -513,12 +513,12 @@ class CI_DB_mysql_driver extends CI_DB {
{
$tables = array($tables);
}
-
+
return '('.implode(', ', $tables).')';
}
// --------------------------------------------------------------------
-
+
/**
* Insert statement
*
@@ -531,13 +531,13 @@ class CI_DB_mysql_driver extends CI_DB {
* @return string
*/
function _insert($table, $keys, $values)
- {
+ {
return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
-
+
// --------------------------------------------------------------------
-
+
/**
* Replace statement
*
@@ -550,10 +550,10 @@ class CI_DB_mysql_driver extends CI_DB {
* @return string
*/
function _replace($table, $keys, $values)
- {
+ {
return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
}
-
+
// --------------------------------------------------------------------
/**
@@ -568,10 +568,10 @@ class CI_DB_mysql_driver extends CI_DB {
* @return string
*/
function _insert_batch($table, $keys, $values)
- {
+ {
return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values);
}
-
+
// --------------------------------------------------------------------
@@ -594,17 +594,17 @@ class CI_DB_mysql_driver extends CI_DB {
{
$valstr[] = $key." = ".$val;
}
-
+
$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-
+
$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-
+
$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
$sql .= $orderby.$limit;
-
+
return $sql;
}
@@ -630,16 +630,16 @@ class CI_DB_mysql_driver extends CI_DB {
foreach($values as $key => $val)
{
$ids[] = $val[$index];
-
+
foreach(array_keys($val) as $field)
- {
+ {
if ($field != $index)
{
$final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field];
}
}
}
-
+
$sql = "UPDATE ".$table." SET ";
$cases = '';
@@ -650,14 +650,14 @@ class CI_DB_mysql_driver extends CI_DB {
{
$cases .= $row."\n";
}
-
+
$cases .= 'ELSE '.$k.' END, ';
}
-
+
$sql .= substr($cases, 0, -2);
-
+
$sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')';
-
+
return $sql;
}
@@ -674,12 +674,12 @@ class CI_DB_mysql_driver extends CI_DB {
* @access public
* @param string the table name
* @return string
- */
+ */
function _truncate($table)
{
return "TRUNCATE ".$table;
}
-
+
// --------------------------------------------------------------------
/**
@@ -692,7 +692,7 @@ class CI_DB_mysql_driver extends CI_DB {
* @param array the where clause
* @param string the limit clause
* @return string
- */
+ */
function _delete($table, $where = array(), $like = array(), $limit = FALSE)
{
$conditions = '';
@@ -710,7 +710,7 @@ class CI_DB_mysql_driver extends CI_DB {
}
$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-
+
return "DELETE FROM ".$table.$conditions.$limit;
}
@@ -728,7 +728,7 @@ class CI_DB_mysql_driver extends CI_DB {
* @return string
*/
function _limit($sql, $limit, $offset)
- {
+ {
if ($offset == 0)
{
$offset = '';
@@ -737,7 +737,7 @@ class CI_DB_mysql_driver extends CI_DB {
{
$offset .= ", ";
}
-
+
return $sql."LIMIT ".$offset.$limit;
}
@@ -754,7 +754,7 @@ class CI_DB_mysql_driver extends CI_DB {
{
@mysql_close($conn_id);
}
-
+
}