0

when i open CodeIgniter project than it can display not able to connect to database

Error message A Database Error Occurred Unable to connect to your database server using the provided settings. Filename: C:\wamp\www\CodeIgniter-Standard-Project-master\system\database\DB_driver.php

Line Number: 76

DB_driver.php

            <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class CI_DB_driver {

        var $username       = 'root';
        var $password       = '';
        var $hostname       = 'localhost';
        var $database       = 'groups';
        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       = true;
        var $conn_id        = FALSE;
        var $result_id      = FALSE;
        var $db_debug       = true;
        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

        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;



        function __construct($params)
        {
            if (is_array($params))
            {
                foreach ($params as $key => $val)
                {
                    $this->$key = $val;
                }
            }

            log_message('debug', 'Database Driver Class Initialized');
        }
        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;
            }
    $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;
        }

        // --------------------------------------------------------------------
        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;
        }

        function platform()
        {
            return $this->dbdriver;
        }

        function version()
        {
            if (FALSE === ($sql = $this->_version()))
            {
                if ($this->db_debug)
                {
                    return $this->display_error('db_unsupported_function');
                }
                return FALSE;
            }
            $driver_version_exceptions = array('oci8', 'sqlite', 'cubrid');

            if (in_array($this->dbdriver, $driver_version_exceptions))
            {
                return $sql;
            }
            else
            {
                $query = $this->query($sql);
                return $query->row('ver');
            }
        }

        // --------------------------------------------------------------------
        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);
            }
            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())
            {
                $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;
        }
        function load_rdriver()
        {
            $driver = 'CI_DB_'.$this->dbdriver.'_result';

            if ( ! class_exists($driver))
            {
                include_once(BASEPATH.'database/DB_result.php');
                include_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result.php');
            }

            return $driver;
        }

        function simple_query($sql)
        {
            if ( ! $this->conn_id)
            {
                $this->initialize();
            }

            return $this->_execute($sql);
        }
        function trans_off()
        {
            $this->trans_enabled = FALSE;
        }
        function trans_strict($mode = TRUE)
        {
            $this->trans_strict = is_bool($mode) ? $mode : TRUE;
        }
        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);
        }
        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;
        }


        function trans_status()
        {
            return $this->_trans_status;
        }


        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;
        }

        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;
        }

        function elapsed_time($decimals = 6)
        {
            return number_format($this->benchmark, $decimals);
        }

        function total_queries()
        {
            return $this->query_count;
        }

        function last_query()
        {
            return end($this->queries);
        }


        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;
        }


        function escape_like_str($str)
        {
            return $this->escape_str($str, TRUE);
        }


        function primary($table = '')
        {
            $fields = $this->list_fields($table);

            if ( ! is_array($fields))
            {
                return FALSE;
            }

            return current($fields);
        }

        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
         * @access  public
         * @return  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
         *
         * @access  public
         * @param   string  the table name
         * @return  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($table)))
            {
                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
         * @access  public
         * @param   string
         * @param   string
         * @return  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
         *
         * @access  public
         * @param   string  the table name
         * @return  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
         *
         * @access  public
         * @param   string  the table upon which the query will be performed
         * @param   array   an associative array data of key/values
         * @return  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
         *
         * @access  public
         * @param   string  the table upon which the query will be performed
         * @param   array   an associative array data of key/values
         * @param   mixed   the "where" statement
         * @return  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
         *
         * @access  private
         * @param   string
         * @return  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.
         *
         * @access  public
         * @param   string  the function name
         * @param   mixed   any parameters needed by the function
         * @return  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
         *
         * @access  public
         * @param   string  the path to the cache directory
         * @return  void
         */
        function cache_set_path($path = '')
        {
            $this->cachedir = $path;
        }

        // --------------------------------------------------------------------

        /**
         * Enable Query Caching
         *
         * @access  public
         * @return  void
         */
        function cache_on()
        {
            $this->cache_on = TRUE;
            return TRUE;
        }

        // --------------------------------------------------------------------

        /**
         * Disable Query Caching
         *
         * @access  public
         * @return  void
         */
        function cache_off()
        {
            $this->cache_on = FALSE;
            return FALSE;
        }


        // --------------------------------------------------------------------

        /**
         * Delete the cache files associated with a particular URI
         *
         * @access  public
         * @return  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
         *
         * @access  public
         * @return  void
         */
        function cache_delete_all()
        {
            if ( ! $this->_cache_init())
            {
                return FALSE;
            }

            return $this->CACHE->delete_all();
        }

        // --------------------------------------------------------------------

        /**
         * Initialize the Cache Class
         *
         * @access  private
         * @return  void
         */
        function _cache_init()
        {
            if (is_object($this->CACHE) AND class_exists('CI_DB_Cache'))
            {
                return TRUE;
            }

            if ( ! class_exists('CI_DB_Cache'))
            {
                if ( ! @include(BASEPATH.'database/DB_cache.php'))
                {
                    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
         *
         * @access  public
         * @return  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
         *
         * @access  public
         * @param   string  the error message
         * @param   string  any "swap" values
         * @param   boolean whether to localize the message
         * @return  string  sends the application/error_db.php template
         */
        function display_error($error = '', $swap = '', $native = FALSE)
        {
            $LANG =& load_class('Lang', 'core');
            $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;
            }

            // Find the most likely culprit of the error by going through
            // the backtrace until the source file is no longer in the
            // database folder.

            $trace = debug_backtrace();

            foreach ($trace as $call)
            {
                if (isset($call['file']) && strpos($call['file'], BASEPATH.'database') === FALSE)
                {
                    // Found it - use a relative path for safety
                    $message[] = 'Filename: '.str_replace(array(BASEPATH, APPPATH), '', $call['file']);
                    $message[] = 'Line Number: '.$call['line'];

                    break;
                }
            }

            $error =& load_class('Exceptions', 'core');
            echo $error->show_error($heading, $message, 'error_db');
            exit;
        }

        // --------------------------------------------------------------------

        /**
         * Protect Identifiers
         *
         * This function adds backticks if appropriate based on db type
         *
         * @access  private
         * @param   mixed   the item to escape
         * @return  mixed   the item with backticks
         */
        function protect_identifiers($item, $prefix_single = FALSE)
        {
            return $this->_protect_identifiers($item, $prefix_single);
        }


        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;
        }


    }

2 Answers 2

2

If you have wampp server use this configuration. If you have xampp use htdocx instead of www

C/wampp/www/Your-project-folder/application/config/database.php

$active_group = 'default';

$query_builder = TRUE;

$db['default'] = array(
'dsn'   => '',
'hostname' => DB_HOST,
'username' => DB_USER,
'password' => DB_PASSWORD,
'database' => DB_NAME,
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Sign up to request clarification or add additional context in comments.

Comments

2

Uncomment @mysql_connect($this->hostname, $this->username, $this->password, TRUE); on system/database/mysql/mysql_driver in db_connect method delete the @ from @mysql_connect($this->hostname, $this->username, $this->password, TRUE);

This will show you the connection error and post result here

PHP 5 or above and CI 3 supports only mysqli

EDIT

$db['default'] = array( 
'dsn' => '',
 'hostname' => DB_HOST, 
 'username' => DB_USER, 
 'password' => DB_PASSWORD, 
 'database' => DB_NAME, 
 'dbdriver' => 'mysqli',

Refer Edit: application/database/config.php

9 Comments

pleace give ne answer
is your MySQL Server running ??
whats your CI version ??
sorry i dont know
@JadavRamesh Please edit application/config/database.php as Tim commented i forgot you posted DB_driver.php
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.