converted to unix-style eol
[www-register-wizard.git] / database / drivers / mysql / mysql_utility.php
index d2c10db..003b1dd 100644 (file)
-<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
-/**\r
- * CodeIgniter\r
- *\r
- * An open source application development framework for PHP 4.3.2 or newer\r
- *\r
- * @package            CodeIgniter\r
- * @author             ExpressionEngine Dev Team\r
- * @copyright  Copyright (c) 2008, EllisLab, Inc.\r
- * @license            http://codeigniter.com/user_guide/license.html\r
- * @link               http://codeigniter.com\r
- * @since              Version 1.0\r
- * @filesource\r
- */\r
-\r
-// ------------------------------------------------------------------------\r
-\r
-/**\r
- * MySQL Utility Class\r
- *\r
- * @category   Database\r
- * @author             ExpressionEngine Dev Team\r
- * @link               http://codeigniter.com/user_guide/database/\r
- */\r
-class CI_DB_mysql_utility extends CI_DB_utility {\r
-\r
-       /**\r
-        * List databases\r
-        *\r
-        * @access      private\r
-        * @return      bool\r
-        */\r
-       function _list_databases()\r
-       {\r
-               return "SHOW DATABASES";\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-\r
-       /**\r
-        * Optimize table query\r
-        *\r
-        * Generates a platform-specific query so that a table can be optimized\r
-        *\r
-        * @access      private\r
-        * @param       string  the table name\r
-        * @return      object\r
-        */\r
-       function _optimize_table($table)\r
-       {\r
-               return "OPTIMIZE TABLE ".$this->db->_escape_identifiers($table);\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-\r
-       /**\r
-        * Repair table query\r
-        *\r
-        * Generates a platform-specific query so that a table can be repaired\r
-        *\r
-        * @access      private\r
-        * @param       string  the table name\r
-        * @return      object\r
-        */\r
-       function _repair_table($table)\r
-       {\r
-               return "REPAIR TABLE ".$this->db->_escape_identifiers($table);\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-       /**\r
-        * MySQL Export\r
-        *\r
-        * @access      private\r
-        * @param       array   Preferences\r
-        * @return      mixed\r
-        */\r
-       function _backup($params = array())\r
-       {\r
-               if (count($params) == 0)\r
-               {\r
-                       return FALSE;\r
-               }\r
-\r
-               // Extract the prefs for simplicity\r
-               extract($params);\r
-       \r
-               // Build the output\r
-               $output = '';\r
-               foreach ((array)$tables as $table)\r
-               {\r
-                       // Is the table in the "ignore" list?\r
-                       if (in_array($table, (array)$ignore, TRUE))\r
-                       {\r
-                               continue;\r
-                       }\r
-\r
-                       // Get the table schema\r
-                       $query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.'.$table);\r
-                       \r
-                       // No result means the table name was invalid\r
-                       if ($query === FALSE)\r
-                       {\r
-                               continue;\r
-                       }\r
-                       \r
-                       // Write out the table schema\r
-                       $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;\r
-\r
-                       if ($add_drop == TRUE)\r
-                       {\r
-                               $output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;\r
-                       }\r
-                       \r
-                       $i = 0;\r
-                       $result = $query->result_array();\r
-                       foreach ($result[0] as $val)\r
-                       {\r
-                               if ($i++ % 2)\r
-                               {                                       \r
-                                       $output .= $val.';'.$newline.$newline;\r
-                               }\r
-                       }\r
-                       \r
-                       // If inserts are not needed we're done...\r
-                       if ($add_insert == FALSE)\r
-                       {\r
-                               continue;\r
-                       }\r
-\r
-                       // Grab all the data from the current table\r
-                       $query = $this->db->query("SELECT * FROM $table");\r
-                       \r
-                       if ($query->num_rows() == 0)\r
-                       {\r
-                               continue;\r
-                       }\r
-               \r
-                       // Fetch the field names and determine if the field is an\r
-                       // integer type.  We use this info to decide whether to\r
-                       // surround the data with quotes or not\r
-                       \r
-                       $i = 0;\r
-                       $field_str = '';\r
-                       $is_int = array();\r
-                       while ($field = mysql_fetch_field($query->result_id))\r
-                       {\r
-                               // Most versions of MySQL store timestamp as a string\r
-                               $is_int[$i] = (in_array(\r
-                                                                               strtolower(mysql_field_type($query->result_id, $i)),\r
-                                                                               array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), \r
-                                                                               TRUE)\r
-                                                                               ) ? TRUE : FALSE;\r
-                                                                               \r
-                               // Create a string of field names\r
-                               $field_str .= '`'.$field->name.'`, ';\r
-                               $i++;\r
-                       }\r
-                       \r
-                       // Trim off the end comma\r
-                       $field_str = preg_replace( "/, $/" , "" , $field_str);\r
-                       \r
-                       \r
-                       // Build the insert string\r
-                       foreach ($query->result_array() as $row)\r
-                       {\r
-                               $val_str = '';\r
-                       \r
-                               $i = 0;\r
-                               foreach ($row as $v)\r
-                               {\r
-                                       // Is the value NULL?\r
-                                       if ($v === NULL)\r
-                                       {\r
-                                               $val_str .= 'NULL';\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               // Escape the data if it's not an integer\r
-                                               if ($is_int[$i] == FALSE)\r
-                                               {\r
-                                                       $val_str .= $this->db->escape($v);\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       $val_str .= $v;\r
-                                               }                                       \r
-                                       }                                       \r
-                                       \r
-                                       // Append a comma\r
-                                       $val_str .= ', ';\r
-                                       $i++;\r
-                               }\r
-                               \r
-                               // Remove the comma at the end of the string\r
-                               $val_str = preg_replace( "/, $/" , "" , $val_str);\r
-                                                               \r
-                               // Build the INSERT string\r
-                               $output .= 'INSERT INTO '.$table.' ('.$field_str.') VALUES ('.$val_str.');'.$newline;\r
-                       }\r
-                       \r
-                       $output .= $newline.$newline;\r
-               }\r
-\r
-               return $output;\r
-       }\r
-\r
-       /**\r
-        *\r
-        * The functions below have been deprecated as of 1.6, and are only here for backwards\r
-        * compatibility.  They now reside in dbforge().  The use of dbutils for database manipulation\r
-        * is STRONGLY discouraged in favour if using dbforge.\r
-        *\r
-        */\r
-\r
-       /**\r
-        * Create database\r
-        *\r
-        * @access      private\r
-        * @param       string  the database name\r
-        * @return      bool\r
-        */\r
-       function _create_database($name)\r
-       {\r
-               return "CREATE DATABASE ".$name;\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-\r
-       /**\r
-        * Drop database\r
-        *\r
-        * @access      private\r
-        * @param       string  the database name\r
-        * @return      bool\r
-        */\r
-       function _drop_database($name)\r
-       {\r
-               return "DROP DATABASE ".$name;\r
-       }\r
-\r
-}\r
-\r
-/* End of file mysql_utility.php */\r
+<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package            CodeIgniter
+ * @author             ExpressionEngine Dev Team
+ * @copyright  Copyright (c) 2008, EllisLab, Inc.
+ * @license            http://codeigniter.com/user_guide/license.html
+ * @link               http://codeigniter.com
+ * @since              Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * MySQL Utility Class
+ *
+ * @category   Database
+ * @author             ExpressionEngine Dev Team
+ * @link               http://codeigniter.com/user_guide/database/
+ */
+class CI_DB_mysql_utility extends CI_DB_utility {
+
+       /**
+        * List databases
+        *
+        * @access      private
+        * @return      bool
+        */
+       function _list_databases()
+       {
+               return "SHOW DATABASES";
+       }
+
+       // --------------------------------------------------------------------
+
+       /**
+        * Optimize table query
+        *
+        * Generates a platform-specific query so that a table can be optimized
+        *
+        * @access      private
+        * @param       string  the table name
+        * @return      object
+        */
+       function _optimize_table($table)
+       {
+               return "OPTIMIZE TABLE ".$this->db->_escape_identifiers($table);
+       }
+
+       // --------------------------------------------------------------------
+
+       /**
+        * Repair table query
+        *
+        * Generates a platform-specific query so that a table can be repaired
+        *
+        * @access      private
+        * @param       string  the table name
+        * @return      object
+        */
+       function _repair_table($table)
+       {
+               return "REPAIR TABLE ".$this->db->_escape_identifiers($table);
+       }
+
+       // --------------------------------------------------------------------
+       /**
+        * MySQL Export
+        *
+        * @access      private
+        * @param       array   Preferences
+        * @return      mixed
+        */
+       function _backup($params = array())
+       {
+               if (count($params) == 0)
+               {
+                       return FALSE;
+               }
+
+               // Extract the prefs for simplicity
+               extract($params);
+       
+               // Build the output
+               $output = '';
+               foreach ((array)$tables as $table)
+               {
+                       // Is the table in the "ignore" list?
+                       if (in_array($table, (array)$ignore, TRUE))
+                       {
+                               continue;
+                       }
+
+                       // Get the table schema
+                       $query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.'.$table);
+                       
+                       // No result means the table name was invalid
+                       if ($query === FALSE)
+                       {
+                               continue;
+                       }
+                       
+                       // Write out the table schema
+                       $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;
+
+                       if ($add_drop == TRUE)
+                       {
+                               $output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;
+                       }
+                       
+                       $i = 0;
+                       $result = $query->result_array();
+                       foreach ($result[0] as $val)
+                       {
+                               if ($i++ % 2)
+                               {                                       
+                                       $output .= $val.';'.$newline.$newline;
+                               }
+                       }
+                       
+                       // If inserts are not needed we're done...
+                       if ($add_insert == FALSE)
+                       {
+                               continue;
+                       }
+
+                       // Grab all the data from the current table
+                       $query = $this->db->query("SELECT * FROM $table");
+                       
+                       if ($query->num_rows() == 0)
+                       {
+                               continue;
+                       }
+               
+                       // Fetch the field names and determine if the field is an
+                       // integer type.  We use this info to decide whether to
+                       // surround the data with quotes or not
+                       
+                       $i = 0;
+                       $field_str = '';
+                       $is_int = array();
+                       while ($field = mysql_fetch_field($query->result_id))
+                       {
+                               // Most versions of MySQL store timestamp as a string
+                               $is_int[$i] = (in_array(
+                                                                               strtolower(mysql_field_type($query->result_id, $i)),
+                                                                               array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), 
+                                                                               TRUE)
+                                                                               ) ? TRUE : FALSE;
+                                                                               
+                               // Create a string of field names
+                               $field_str .= '`'.$field->name.'`, ';
+                               $i++;
+                       }
+                       
+                       // Trim off the end comma
+                       $field_str = preg_replace( "/, $/" , "" , $field_str);
+                       
+                       
+                       // Build the insert string
+                       foreach ($query->result_array() as $row)
+                       {
+                               $val_str = '';
+                       
+                               $i = 0;
+                               foreach ($row as $v)
+                               {
+                                       // Is the value NULL?
+                                       if ($v === NULL)
+                                       {
+                                               $val_str .= 'NULL';
+                                       }
+                                       else
+                                       {
+                                               // Escape the data if it's not an integer
+                                               if ($is_int[$i] == FALSE)
+                                               {
+                                                       $val_str .= $this->db->escape($v);
+                                               }
+                                               else
+                                               {
+                                                       $val_str .= $v;
+                                               }                                       
+                                       }                                       
+                                       
+                                       // Append a comma
+                                       $val_str .= ', ';
+                                       $i++;
+                               }
+                               
+                               // Remove the comma at the end of the string
+                               $val_str = preg_replace( "/, $/" , "" , $val_str);
+                                                               
+                               // Build the INSERT string
+                               $output .= 'INSERT INTO '.$table.' ('.$field_str.') VALUES ('.$val_str.');'.$newline;
+                       }
+                       
+                       $output .= $newline.$newline;
+               }
+
+               return $output;
+       }
+
+       /**
+        *
+        * The functions below have been deprecated as of 1.6, and are only here for backwards
+        * compatibility.  They now reside in dbforge().  The use of dbutils for database manipulation
+        * is STRONGLY discouraged in favour if using dbforge.
+        *
+        */
+
+       /**
+        * Create database
+        *
+        * @access      private
+        * @param       string  the database name
+        * @return      bool
+        */
+       function _create_database($name)
+       {
+               return "CREATE DATABASE ".$name;
+       }
+
+       // --------------------------------------------------------------------
+
+       /**
+        * Drop database
+        *
+        * @access      private
+        * @param       string  the database name
+        * @return      bool
+        */
+       function _drop_database($name)
+       {
+               return "DROP DATABASE ".$name;
+       }
+
+}
+
+/* End of file mysql_utility.php */
 /* Location: ./system/database/drivers/mysql/mysql_utility.php */
\ No newline at end of file