• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

Game Cp rf offcie fdcore.

Newbie Spellweaver
Joined
Aug 23, 2013
Messages
9
Reaction score
0
Hi all, raise the old topic. "Sorry for my Eng, iam from Russia"
So, http://forum.ragezone.com/f479/game-cp-rf-office-ci-919316/
I did everything as expected, but -
Code:
[COLOR=#666666]There was a database error
[/COLOR][COLOR=#666666]Unable to connect to the database using the proposed username / password.[/COLOR]

AppServ\www\rf_office\config\database.php ===>>>
PHP:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');/*| -------------------------------------------------------------------| DATABASE CONNECTIVITY SETTINGS| -------------------------------------------------------------------| This file will contain the settings needed to access your database.|| For complete instructions please consult the "Database Connection"| page of the User Guide.|| -------------------------------------------------------------------| EXPLANATION OF VARIABLES| -------------------------------------------------------------------||	['hostname'] The hostname of your database server.|	['username'] The username used to connect to the database|	['password'] The password used to connect to the database|	['database'] The name of the database you want to connect to|	['dbdriver'] The database type. ie: mysql.  Currently supported:				 mysql, mysqli, postgre, odbc, mssql, sqlite, oci8|	['dbprefix'] You can add an optional prefix, which will be added|				 to the table name when using the  Active Record class|	['pconnect'] TRUE/FALSE - Whether to use a persistent connection|	['db_debug'] TRUE/FALSE - Whether database errors should be displayed.|	['cache_on'] TRUE/FALSE - Enables/disables query caching|	['cachedir'] The path to the folder where cache files should be stored|	['char_set'] The character set used in communicating with the database|	['dbcollat'] The character collation used in communicating with the database|| The $active_group variable lets you choose which connection group to| make active.  By default there is only one group (the "default" group).|| The $active_record variables lets you determine whether or not to load| the active record class*/$active_group = "default";$active_record = TRUE;$db['default']['hostname'] = "";$db['default']['username'] = "";$db['default']['password'] = "";$db['default']['database'] = "";$db['default']['dbdriver'] = "mssql";$db['default']['dbprefix'] = "";$db['default']['pconnect'] = TRUE;$db['default']['db_debug'] = TRUE;$db['default']['cache_on'] = FALSE;$db['default']['cachedir'] = "";$db['default']['char_set'] = "utf8";$db['default']['dbcollat'] = "utf8_general_ci";/* End of file database.php *//* Location: ./system/application/config/database.php */

PHP:
<?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 *  [USER=822345]Copyright[/USER]	Copyright (c) 2008 - 2009, EllisLab, Inc. *  [USER=585868]Lice[/USER]nse		[url=http://codeigniter.com/user_guide/license.html]The MIT License (MIT) — CodeIgniter 3.1.6 documentation[/url] *  [USER=2000172648]link[/USER]		[url=http://codeigniter.com]CodeIgniter Web Framework[/url] *  [USER=302236]Sin[/USER]ce		Version 1.0 *  [USER=2000216297]files[/USER]ource */// ------------------------------------------------------------------------/** * Database Driver Class * * This is the platform-independent base DB implementation class. * This class will not be called directly. Rather, the adapter * class for the specific database will extend and instantiate it. * * @package		CodeIgniter *  [USER=616144]sub[/USER]package	Drivers *  [USER=2000195214]CaT[/USER]egory	Database * @author		ExpressionEngine Dev Team *  [USER=2000172648]link[/USER]		[url=http://codeigniter.com/user_guide/database/]Database Reference — CodeIgniter 3.1.6 documentation[/url] */class CI_DB_driver {	var $username;	var $password;	var $hostname;	var $database;	var $dbdriver		= 'mysql';	var $dbprefix		= '';	var $char_set		= 'utf8';	var $dbcollat		= 'utf8_general_ci';	var $autoinit		= TRUE; // Whether to automatically initialize the DB	var $swap_pre		= '';	var $port			= '';	var $pconnect		= FALSE;	var $conn_id		= FALSE;	var $result_id		= FALSE;	var $db_debug		= FALSE;	var $benchmark		= 0;	var $query_count	= 0;	var $bind_marker	= '?';	var $save_queries	= TRUE;	var $queries		= array();	var $query_times	= array();	var $data_cache		= array();	var $trans_enabled	= TRUE;	var $trans_strict	= TRUE;	var $_trans_depth	= 0;	var $_trans_status	= TRUE; // Used with transactions to determine if a rollback should occur	var $cache_on		= FALSE;	var $cachedir		= '';	var $cache_autodel	= FALSE;	var $CACHE; // The cache class object	// Private variables	var $_protect_identifiers	= TRUE;	var $_reserved_identifiers	= array('*'); // Identifiers that should NOT be escaped	// These are use with Oracle	var $stmt_id;	var $curs_id;	var $limit_used;		/**	 * Constructor.  Accepts one parameter containing the database	 * connection settings.	 *	 *  [USER=2000183830]para[/USER]m array	 */		function CI_DB_driver($params)	{		if (is_array($params))		{			foreach ($params as $key => $val)			{				$this->$key = $val;			}		}		log_message('debug', 'Database Driver Class Initialized');	}		// --------------------------------------------------------------------	/**	 * Initialize Database Settings	 *	 *  [USER=575810]access[/USER]	private Called by the constructor	 *  [USER=2000183830]para[/USER]m	mixed	 *  [USER=850422]return[/USER]	void	 */		function initialize()	{		// If an existing connection resource is available		// there is no need to connect and select the database		if (is_resource($this->conn_id) OR is_object($this->conn_id))		{			return TRUE;		}			// ----------------------------------------------------------------				// Connect to the database and set the connection ID		$this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect();		// No connection resource?  Throw an error		if ( ! $this->conn_id)		{			log_message('error', 'Unable to connect to the database');						if ($this->db_debug)			{				$this->display_error('db_unable_to_connect');			}			return FALSE;		}		// ----------------------------------------------------------------		// Select the DB... assuming a database name is specified in the config file		if ($this->database != '')		{			if ( ! $this->db_select())			{				log_message('error', 'Unable to select database: '.$this->database);							if ($this->db_debug)				{					$this->display_error('db_unable_to_select', $this->database);				}				return FALSE;						}			else			{				// We've selected the DB. Now we set the character set				if ( ! $this->db_set_charset($this->char_set, $this->dbcollat))				{					return FALSE;				}						return TRUE;			}		}		return TRUE;	}			// --------------------------------------------------------------------	/**	 * Set client character set	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=850422]return[/USER]	resource	 */	function db_set_charset($charset, $collation)	{		if ( ! $this->_db_set_charset($this->char_set, $this->dbcollat))		{			log_message('error', 'Unable to set database connection charset: '.$this->char_set);					if ($this->db_debug)			{				$this->display_error('db_unable_to_set_charset', $this->char_set);			}						return FALSE;		}				return TRUE;	}		// --------------------------------------------------------------------	/**	 * The name of the platform in use (mysql, mssql, etc...)	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	string			 */		function platform()	{		return $this->dbdriver;	}	// --------------------------------------------------------------------	/**	 * Database Version Number.  Returns a string containing the	 * version of the database being used	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	string		 */		function version()	{		if (FALSE === ($sql = $this->_version()))		{			if ($this->db_debug)			{				return $this->display_error('db_unsupported_function');			}			return FALSE;		}				if ($this->dbdriver == 'oci8')		{			return $sql;		}			$query = $this->query($sql);		return $query->row('ver');	}		// --------------------------------------------------------------------	/**	 * Execute the query	 *	 * Accepts an SQL string as input and returns a result object upon	 * successful execution of a "read" type query.  Returns boolean TRUE	 * upon successful execution of a "write" type query. Returns boolean	 * FALSE upon failure, and if the $db_debug variable is set to TRUE	 * will raise an error.	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	An SQL query string	 *  [USER=2000183830]para[/USER]m	array	An array of binding data	 *  [USER=850422]return[/USER]	mixed			 */		function query($sql, $binds = FALSE, $return_object = TRUE)	{		if ($sql == '')		{			if ($this->db_debug)			{				log_message('error', 'Invalid query: '.$sql);				return $this->display_error('db_invalid_query');			}			return FALSE;		}		// Verify table prefix and replace if necessary		if ( ($this->dbprefix != '' AND $this->swap_pre != '') AND ($this->dbprefix != $this->swap_pre) )		{						$sql = preg_replace("/(\W)".$this->swap_pre."(\S+?)/", "\\1".$this->dbprefix."\\2", $sql);		}				// Is query caching enabled?  If the query is a "read type"		// we will load the caching class and return the previously		// cached query if it exists		if ($this->cache_on == TRUE AND stristr($sql, 'SELECT'))		{			if ($this->_cache_init())			{				$this->load_rdriver();				if (FALSE !== ($cache = $this->CACHE->read($sql)))				{					return $cache;				}			}		}				// Compile binds if needed		if ($binds !== FALSE)		{			$sql = $this->compile_binds($sql, $binds);		}		// Save the  query for debugging		if ($this->save_queries == TRUE)		{			$this->queries[] = $sql;		}				// Start the Query Timer		$time_start = list($sm, $ss) = explode(' ', microtime());			// Run the Query		if (FALSE === ($this->result_id = $this->simple_query($sql)))		{			if ($this->save_queries == TRUE)			{				$this->query_times[] = 0;			}					// This will trigger a rollback if transactions are being used			$this->_trans_status = FALSE;			if ($this->db_debug)			{				// grab the error number and message now, as we might run some				// additional queries before displaying the error				$error_no = $this->_error_number();				$error_msg = $this->_error_message();								// We call this function in order to roll-back queries				// if transactions are enabled.  If we don't call this here				// the error message will trigger an exit, causing the 				// transactions to remain in limbo.				$this->trans_complete();				// Log and display errors				log_message('error', 'Query error: '.$error_msg);				return $this->display_error(										array(												'Error Number: '.$error_no,												$error_msg,												$sql											)										);			}					return FALSE;		}				// Stop and aggregate the query time results		$time_end = list($em, $es) = explode(' ', microtime());		$this->benchmark += ($em + $es) - ($sm + $ss);		if ($this->save_queries == TRUE)		{			$this->query_times[] = ($em + $es) - ($sm + $ss);		}				// Increment the query counter		$this->query_count++;				// Was the query a "write" type?		// If so we'll simply return true		if ($this->is_write_type($sql) === TRUE)		{			// If caching is enabled we'll auto-cleanup any			// existing files related to this particular URI			if ($this->cache_on == TRUE AND $this->cache_autodel == TRUE AND $this->_cache_init())			{				$this->CACHE->delete();			}					return TRUE;		}				// Return TRUE if we don't need to create a result object		// Currently only the Oracle driver uses this when stored		// procedures are used		if ($return_object !== TRUE)		{			return TRUE;		}			// Load and instantiate the result driver					$driver 		= $this->load_rdriver();		$RES 			= new $driver();		$RES->conn_id	= $this->conn_id;		$RES->result_id	= $this->result_id;		if ($this->dbdriver == 'oci8')		{			$RES->stmt_id		= $this->stmt_id;			$RES->curs_id		= NULL;			$RES->limit_used	= $this->limit_used;			$this->stmt_id		= FALSE;		}				// oci8 vars must be set before calling this		$RES->num_rows	= $RES->num_rows();						// Is query caching enabled?  If so, we'll serialize the		// result object and save it to a cache file.		if ($this->cache_on == TRUE AND $this->_cache_init())		{			// We'll create a new instance of the result object			// only without the platform specific driver since			// we can't use it with cached data (the query result			// resource ID won't be any good once we've cached the			// result object, so we'll have to compile the data			// and save it)			$CR = new CI_DB_result();			$CR->num_rows 		= $RES->num_rows();			$CR->result_object	= $RES->result_object();			$CR->result_array	= $RES->result_array();						// Reset these since cached objects can not utilize resource IDs.			$CR->conn_id		= NULL;			$CR->result_id		= NULL;			$this->CACHE->write($sql, $CR);		}				return $RES;	}	// --------------------------------------------------------------------	/**	 * Load the result drivers	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	string 	the name of the result class			 */			function load_rdriver()	{		$driver = 'CI_DB_'.$this->dbdriver.'_result';		if ( ! class_exists($driver))		{			include_once(BASEPATH.'database/DB_result'.EXT);			include_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result'.EXT);		}				return $driver;	}		// --------------------------------------------------------------------	/**	 * Simple Query	 * This is a simplified version of the query() function.  Internally	 * we only use it when running transaction commands since they do	 * not require all the features of the main query() function.	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the sql query	 *  [USER=850422]return[/USER]	mixed			 */		function simple_query($sql)	{		if ( ! $this->conn_id)		{			$this->initialize();		}		return $this->_execute($sql);	}		// --------------------------------------------------------------------	/**	 * Disable Transactions	 * This permits transactions to be disabled at run-time.	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void			 */		function trans_off()	{		$this->trans_enabled = FALSE;	}	// --------------------------------------------------------------------	/**	 * Enable/disable Transaction Strict Mode	 * When strict mode is enabled, if you are running multiple groups of	 * transactions, if one group fails all groups will be rolled back.	 * If strict mode is disabled, each group is treated autonomously, meaning	 * a failure of one group will not affect any others	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void			 */		function trans_strict($mode = TRUE)	{		$this->trans_strict = is_bool($mode) ? $mode : TRUE;	}		// --------------------------------------------------------------------	/**	 * Start Transaction	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void			 */		function trans_start($test_mode = FALSE)	{			if ( ! $this->trans_enabled)		{			return FALSE;		}		// When transactions are nested we only begin/commit/rollback the outermost ones		if ($this->_trans_depth > 0)		{			$this->_trans_depth += 1;			return;		}				$this->trans_begin($test_mode);	}	// --------------------------------------------------------------------	/**	 * Complete Transaction	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	bool			 */		function trans_complete()	{		if ( ! $this->trans_enabled)		{			return FALSE;		}			// When transactions are nested we only begin/commit/rollback the outermost ones		if ($this->_trans_depth > 1)		{			$this->_trans_depth -= 1;			return TRUE;		}			// The query() function will set this flag to FALSE in the event that a query failed		if ($this->_trans_status === FALSE)		{			$this->trans_rollback();						// If we are NOT running in strict mode, we will reset			// the _trans_status flag so that subsequent groups of transactions			// will be permitted.			if ($this->trans_strict === FALSE)			{				$this->_trans_status = TRUE;			}			log_message('debug', 'DB Transaction Failure');			return FALSE;		}				$this->trans_commit();		return TRUE;	}	// --------------------------------------------------------------------	/**	 * Lets you retrieve the transaction flag to determine if it has failed	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	bool			 */		function trans_status()	{		return $this->_trans_status;	}	// --------------------------------------------------------------------	/**	 * Compile Bindings	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the sql statement	 *  [USER=2000183830]para[/USER]m	array	an array of bind data	 *  [USER=850422]return[/USER]	string			 */		function compile_binds($sql, $binds)	{		if (strpos($sql, $this->bind_marker) === FALSE)		{			return $sql;		}				if ( ! is_array($binds))		{			$binds = array($binds);		}				// Get the sql segments around the bind markers		$segments = explode($this->bind_marker, $sql);		// The count of bind should be 1 less then the count of segments		// If there are more bind arguments trim it down		if (count($binds) >= count($segments)) {			$binds = array_slice($binds, 0, count($segments)-1);		}		// Construct the binded query		$result = $segments[0];		$i = 0;		foreach ($binds as $bind)		{			$result .= $this->escape($bind);			$result .= $segments[++$i];		}		return $result;	}		// --------------------------------------------------------------------	/**	 * Determines if a query is a "write" type.	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	An SQL query string	 *  [USER=850422]return[/USER]	boolean			 */		function is_write_type($sql)	{		if ( ! preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql))		{			return FALSE;		}		return TRUE;	}		// --------------------------------------------------------------------	/**	 * Calculate the aggregate query elapsed time	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	integer	The number of decimal places	 *  [USER=850422]return[/USER]	integer			 */		function elapsed_time($decimals = 6)	{		return number_format($this->benchmark, $decimals);	}		// --------------------------------------------------------------------	/**	 * Returns the total number of queries	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	integer			 */		function total_queries()	{		return $this->query_count;	}		// --------------------------------------------------------------------	/**	 * Returns the last query that was executed	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void			 */		function last_query()	{		return end($this->queries);	}	// --------------------------------------------------------------------	/**	 * "Smart" Escape String	 *	 * Escapes data based on type	 * Sets boolean and null types	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=850422]return[/USER]	mixed			 */		function escape($str)	{		if (is_string($str))		{			$str = "'".$this->escape_str($str)."'";		}		elseif (is_bool($str))		{			$str = ($str === FALSE) ? 0 : 1;		}		elseif (is_null($str))		{			$str = 'NULL';		}		return $str;	}	// --------------------------------------------------------------------		/**	 * Escape LIKE String	 *	 * Calls the individual driver for platform	 * specific escaping for LIKE conditions	 * 	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=850422]return[/USER]	mixed	 */    function escape_like_str($str)        {        	return $this->escape_str($str, TRUE);	}	// --------------------------------------------------------------------		/**	 * Primary	 *	 * Retrieves the primary key.  It assumes that the row in the first	 * position is the primary key	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the table name	 *  [USER=850422]return[/USER]	string			 */		function primary($table = '')	{			$fields = $this->list_fields($table);				if ( ! is_array($fields))		{			return FALSE;		}		return current($fields);	}	// --------------------------------------------------------------------	/**	 * Returns an array of table names	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	array			 */		function list_tables($constrain_by_prefix = FALSE)	{		// Is there a cached result?		if (isset($this->data_cache['table_names']))		{			return $this->data_cache['table_names'];		}			if (FALSE === ($sql = $this->_list_tables($constrain_by_prefix)))		{			if ($this->db_debug)			{				return $this->display_error('db_unsupported_function');			}			return FALSE;		}		$retval = array();		$query = $this->query($sql);				if ($query->num_rows() > 0)		{			foreach($query->result_array() as $row)			{				if (isset($row['TABLE_NAME']))				{					$retval[] = $row['TABLE_NAME'];				}				else				{					$retval[] = array_shift($row);				}			}		}		$this->data_cache['table_names'] = $retval;		return $this->data_cache['table_names'];	}		// --------------------------------------------------------------------	/**	 * Determine if a particular table exists	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	boolean	 */	function table_exists($table_name)	{			return ( ! in_array($this->_protect_identifiers($table_name, TRUE, FALSE, FALSE), $this->list_tables())) ? FALSE : TRUE;	}		// --------------------------------------------------------------------	/**	 * Fetch MySQL Field Names	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the table name	 *  [USER=850422]return[/USER]	array			 */	function list_fields($table = '')	{		// Is there a cached result?		if (isset($this->data_cache['field_names'][$table]))		{			return $this->data_cache['field_names'][$table];		}			if ($table == '')		{			if ($this->db_debug)			{				return $this->display_error('db_field_param_missing');			}			return FALSE;		}				if (FALSE === ($sql = $this->_list_columns($this->_protect_identifiers($table, TRUE, NULL, FALSE))))		{			if ($this->db_debug)			{				return $this->display_error('db_unsupported_function');			}			return FALSE;		}				$query = $this->query($sql);				$retval = array();		foreach($query->result_array() as $row)		{			if (isset($row['COLUMN_NAME']))			{				$retval[] = $row['COLUMN_NAME'];			}			else			{				$retval[] = current($row);			}				}				$this->data_cache['field_names'][$table] = $retval;		return $this->data_cache['field_names'][$table];	}	// --------------------------------------------------------------------	/**	 * Determine if a particular field exists	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=850422]return[/USER]	boolean	 */	function field_exists($field_name, $table_name)	{			return ( ! in_array($field_name, $this->list_fields($table_name))) ? FALSE : TRUE;	}		// --------------------------------------------------------------------	/**	 * Returns an object with field data	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the table name	 *  [USER=850422]return[/USER]	object			 */		function field_data($table = '')	{		if ($table == '')		{			if ($this->db_debug)			{				return $this->display_error('db_field_param_missing');			}			return FALSE;		}				$query = $this->query($this->_field_data($this->_protect_identifiers($table, TRUE, NULL, FALSE)));		return $query->field_data();	}		// --------------------------------------------------------------------		/**	 * Generate an insert string	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the table upon which the query will be performed	 *  [USER=2000183830]para[/USER]m	array	an associative array data of key/values	 *  [USER=850422]return[/USER]	string			 */		function insert_string($table, $data)	{		$fields = array();		$values = array();				foreach($data as $key => $val)		{			$fields[] = $this->_escape_identifiers($key);			$values[] = $this->escape($val);		}						return $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $values);	}			// --------------------------------------------------------------------	/**	 * Generate an update string	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the table upon which the query will be performed	 *  [USER=2000183830]para[/USER]m	array	an associative array data of key/values	 *  [USER=2000183830]para[/USER]m	mixed	the "where" statement	 *  [USER=850422]return[/USER]	string			 */		function update_string($table, $data, $where)	{		if ($where == '')		{			return false;		}							$fields = array();		foreach($data as $key => $val)		{			$fields[$this->_protect_identifiers($key)] = $this->escape($val);		}		if ( ! is_array($where))		{			$dest = array($where);		}		else		{			$dest = array();			foreach ($where as $key => $val)			{				$prefix = (count($dest) == 0) ? '' : ' AND ';					if ($val !== '')				{					if ( ! $this->_has_operator($key))					{						$key .= ' =';					}									$val = ' '.$this->escape($val);				}											$dest[] = $prefix.$key.$val;			}		}				return $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $dest);	}		// --------------------------------------------------------------------	/**	 * Tests whether the string has an SQL operator	 *	 *  [USER=575810]access[/USER]	private	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=850422]return[/USER]	bool	 */	function _has_operator($str)	{		$str = trim($str);		if ( ! preg_match("/(\s|<|>|!|=|is null|is not null)/i", $str))		{			return FALSE;		}		return TRUE;	}	// --------------------------------------------------------------------	/**	 * Enables a native PHP function to be run, using a platform agnostic wrapper.	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the function name	 *  [USER=2000183830]para[/USER]m	mixed	any parameters needed by the function	 *  [USER=850422]return[/USER]	mixed			 */		function call_function($function)	{		$driver = ($this->dbdriver == 'postgre') ? 'pg_' : $this->dbdriver.'_';			if (FALSE === strpos($driver, $function))		{			$function = $driver.$function;		}				if ( ! function_exists($function))		{			if ($this->db_debug)			{				return $this->display_error('db_unsupported_function');			}			return FALSE;		}		else		{			$args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null;			return call_user_func_array($function, $args);		}	}	// --------------------------------------------------------------------	/**	 * Set Cache Directory Path	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the path to the cache directory	 *  [USER=850422]return[/USER]	void	 */			function cache_set_path($path = '')	{		$this->cachedir = $path;	}	// --------------------------------------------------------------------	/**	 * Enable Query Caching	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void	 */			function cache_on()	{		$this->cache_on = TRUE;		return TRUE;	}	// --------------------------------------------------------------------	/**	 * Disable Query Caching	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void	 */		function cache_off()	{		$this->cache_on = FALSE;		return FALSE;	}		// --------------------------------------------------------------------	/**	 * Delete the cache files associated with a particular URI	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void	 */			function cache_delete($segment_one = '', $segment_two = '')	{		if ( ! $this->_cache_init())		{			return FALSE;		}		return $this->CACHE->delete($segment_one, $segment_two);	}	// --------------------------------------------------------------------	/**	 * Delete All cache files	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void	 */			function cache_delete_all()	{		if ( ! $this->_cache_init())		{			return FALSE;		}		return $this->CACHE->delete_all();	}	// --------------------------------------------------------------------	/**	 * Initialize the Cache Class	 *	 *  [USER=575810]access[/USER]	private	 *  [USER=850422]return[/USER]	void	 */		function _cache_init()	{		if (is_object($this->CACHE) AND class_exists('CI_DB_Cache'))		{			return TRUE;		}		if ( ! class_exists('CI_DB_Cache'))		{			if ( !  [USER=2000167780]Include[/USER](BASEPATH.'database/DB_cache'.EXT))			{				return $this->cache_off();			}		}		$this->CACHE = new CI_DB_Cache($this); // pass db object to support multiple db connections and returned db objects		return TRUE;	}	// --------------------------------------------------------------------	/**	 * Close DB Connection	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=850422]return[/USER]	void			 */		function close()	{		if (is_resource($this->conn_id) OR is_object($this->conn_id))		{			$this->_close($this->conn_id);		}		$this->conn_id = FALSE;	}		// --------------------------------------------------------------------	/**	 * Display an error message	 *	 *  [USER=575810]access[/USER]	public	 *  [USER=2000183830]para[/USER]m	string	the error message	 *  [USER=2000183830]para[/USER]m	string	any "swap" values	 *  [USER=2000183830]para[/USER]m	boolean	whether to localize the message	 *  [USER=850422]return[/USER]	string	sends the application/error_db.php template			 */		function display_error($error = '', $swap = '', $native = FALSE)	{		$LANG =& load_class('Language');		$LANG->load('db');		$heading = $LANG->line('db_error_heading');		if ($native == TRUE)		{			$message = $error;		}		else		{			$message = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error;		}				$error =& load_class('Exceptions');		echo $error->show_error($heading, $message, 'error_db');		exit;	}	// --------------------------------------------------------------------	/**	 * Protect Identifiers	 *	 * This function adds backticks if appropriate based on db type	 *	 *  [USER=575810]access[/USER]	private	 *  [USER=2000183830]para[/USER]m	mixed	the item to escape	 *  [USER=850422]return[/USER]	mixed	the item with backticks	 */	function protect_identifiers($item, $prefix_single = FALSE)	{		return $this->_protect_identifiers($item, $prefix_single);	}	// --------------------------------------------------------------------	/**	 * Protect Identifiers	 *	 * This function is used extensively by the Active Record class, and by	 * a couple functions in this class. 	 * It takes a column or table name (optionally with an alias) and inserts	 * the table prefix onto it.  Some logic is necessary in order to deal with	 * column names that include the path.  Consider a query like this:	 *	 * SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table	 *	 * Or a query with aliasing:	 *	 * SELECT m.member_id, m.member_name FROM members AS m	 *	 * Since the column name can include up to four segments (host, DB, table, column)	 * or also have an alias prefix, we need to do a bit of work to figure this out and	 * insert the table prefix (if it exists) in the proper position, and escape only	 * the correct identifiers.	 *	 *  [USER=575810]access[/USER]	private	 *  [USER=2000183830]para[/USER]m	string	 *  [USER=2000183830]para[/USER]m	bool	 *  [USER=2000183830]para[/USER]m	mixed	 *  [USER=2000183830]para[/USER]m	bool	 *  [USER=850422]return[/USER]	string	 */		function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifiers = NULL, $field_exists = TRUE)	{		if ( ! is_bool($protect_identifiers))		{			$protect_identifiers = $this->_protect_identifiers;		}		if (is_array($item))		{			$escaped_array = array();			foreach($item as $k => $v)			{				$escaped_array[$this->_protect_identifiers($k)] = $this->_protect_identifiers($v);			}			return $escaped_array;		}		// Convert tabs or multiple spaces into single spaces		$item = preg_replace('/[\t ]+/', ' ', $item);			// If the item has an alias declaration we remove it and set it aside.		// Basically we remove everything to the right of the first space		$alias = '';		if (strpos($item, ' ') !== FALSE)		{			$alias = strstr($item, " ");			$item = substr($item, 0, - strlen($alias));		}		// This is basically a bug fix for queries that use MAX, MIN, etc.		// If a parenthesis is found we know that we do not need to 		// escape the data or add a prefix.  There's probably a more graceful		// way to deal with this, but I'm not thinking of it -- Rick		if (strpos($item, '(') !== FALSE)		{			return $item.$alias;		}		// Break the string apart if it contains periods, then insert the table prefix		// in the correct location, assuming the period doesn't indicate that we're dealing		// with an alias. While we're at it, we will escape the components		if (strpos($item, '.') !== FALSE)		{			$parts	= explode('.', $item);						// Does the first segment of the exploded item match			// one of the aliases previously identified?  If so,			// we have nothing more to do other than escape the item			if (in_array($parts[0], $this->ar_aliased_tables))			{				if ($protect_identifiers === TRUE)				{					foreach ($parts as $key => $val)					{						if ( ! in_array($val, $this->_reserved_identifiers))						{							$parts[$key] = $this->_escape_identifiers($val);						}					}									$item = implode('.', $parts);				}							return $item.$alias;			}						// Is there a table prefix defined in the config file?  If not, no need to do anything			if ($this->dbprefix != '')			{				// We now add the table prefix based on some logic.				// Do we have 4 segments (hostname.database.table.column)?				// If so, we add the table prefix to the column name in the 3rd segment.				if (isset($parts[3]))				{					$i = 2;				}				// Do we have 3 segments (database.table.column)?				// If so, we add the table prefix to the column name in 2nd position				elseif (isset($parts[2]))				{					$i = 1;				}				// Do we have 2 segments (table.column)?				// If so, we add the table prefix to the column name in 1st segment				else				{					$i = 0;				}								// This flag is set when the supplied $item does not contain a field name.				// This can happen when this function is being called from a JOIN.				if ($field_exists == FALSE)				{					$i++;				}				// Verify table prefix and replace if necessary				if ($this->swap_pre != '' && strncmp($parts[$i], $this->swap_pre, strlen($this->swap_pre)) === 0)				{					$parts[$i] = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $parts[$i]);				}												// We only add the table prefix if it does not already exist				if (substr($parts[$i], 0, strlen($this->dbprefix)) != $this->dbprefix)				{					$parts[$i] = $this->dbprefix.$parts[$i];				}								// Put the parts back together				$item = implode('.', $parts);			}						if ($protect_identifiers === TRUE)			{				$item = $this->_escape_identifiers($item);			}						return $item.$alias;		}		// Is there a table prefix?  If not, no need to insert it		if ($this->dbprefix != '')		{			// Verify table prefix and replace if necessary			if ($this->swap_pre != '' && strncmp($item, $this->swap_pre, strlen($this->swap_pre)) === 0)			{				$item = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $item);			}			// Do we prefix an item with no segments?			if ($prefix_single == TRUE AND substr($item, 0, strlen($this->dbprefix)) != $this->dbprefix)			{				$item = $this->dbprefix.$item;			}				}		if ($protect_identifiers === TRUE AND ! in_array($item, $this->_reserved_identifiers))		{			$item = $this->_escape_identifiers($item);		}				return $item.$alias;	}}/* End of file DB_driver.php *//* Location: ./system/database/DB_driver.php */
What I'm doing is not right, help me figure it out.

P.S Thank you all for any help.



<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/*| -------------------------------------------------------------------| DATABASE CONNECTIVITY SETTINGS| -------------------------------------------------------------------| This file will contain the settings needed to access your database.|| For complete instructions please consult the "Database Connection"| page of the User Guide.|| -------------------------------------------------------------------| EXPLANATION OF VARIABLES| -------------------------------------------------------------------|| ['hostname'] The hostname of your database server.| ['username'] The username used to connect to the database| ['password'] The password used to connect to the database| ['database'] The name of the database you want to connect to| ['dbdriver'] The database type. ie: mysql. Currently supported: mysql, mysqli, postgre, odbc, mssql, sqlite, oci8| ['dbprefix'] You can add an optional prefix, which will be added| to the table name when using the Active Record class| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.| ['cache_on'] TRUE/FALSE - Enables/disables query caching| ['cachedir'] The path to the folder where cache files should be stored| ['char_set'] The character set used in communicating with the database| ['dbcollat'] The character collation used in communicating with the database|| The $active_group variable lets you choose which connection group to| make active. By default there is only one group (the "default" group).|| The $active_record variables lets you determine whether or not to load| the active record class*/$active_group = "default";$active_record = TRUE;$db['default']['hostname'] = "";$db['default']['username'] = "";$db['default']['password'] = "";$db['default']['database'] = "";$db['default']['dbdriver'] = "mssql";$db['default']['dbprefix'] = "";$db['default']['pconnect'] = TRUE;$db['default']['db_debug'] = TRUE;$db['default']['cache_on'] = FALSE;$db['default']['cachedir'] = "";$db['default']['char_set'] = "utf8";$db['default']['dbcollat'] = "utf8_general_ci";/* End of file database.php *//* Location: ./system/application/config/database.php */
 
Last edited:
Back
Top