1

I am trying to load a different database based on the session variable in codeigniter, But I get an error An Error Was Encountered You have not selected a database type to connect to. Below I have my admin_init_elements library file

<?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
|				 NOTE: For MySQL and MySQLi databases, this setting is only used
| 				 as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
|				 (and in table creation queries made with DB Forge).
| 				 There is an incompatibility in PHP with mysql_real_escape_string() which
| 				 can make your site vulnerable to SQL injection if you are using a
| 				 multi-byte character set and are running versions lower than these.
| 				 Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
|	['swap_pre'] A default table prefix that should be swapped with the dbprefix
|	['autoinit'] Whether or not to automatically initialize the database.
|	['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
|							- good for ensuring strict SQL while developing
|
| 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'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'pass';
$db['default']['database'] = 'latestdb';
$db['default']['dbdriver'] = 'mysql';
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


$db['latestdb']['hostname'] = 'localhost';
$db['latestdb']['username'] = 'root';
$db['latestdb']['password'] = 'pass';
$db['latestdb']['database'] = 'latestdb';
$db['latestdb']['dbdriver'] = 'mysql';
$db['latestdb']['dbprefix'] = '';
$db['latestdb']['pconnect'] = TRUE;
$db['latestdb']['db_debug'] = TRUE;
$db['latestdb']['cache_on'] = FALSE;
$db['latestdb']['cachedir'] = '';
$db['latestdb']['char_set'] = 'utf8';
$db['latestdb']['dbcollat'] = 'utf8_general_ci';
$db['latestdb']['swap_pre'] = '';
$db['latestdb']['autoinit'] = TRUE;
$db['latestdb']['stricton'] = FALSE;


$db['sit']['hostname'] = 'localhost';
$db['sit']['username'] = 'root';
$db['sit']['password'] = 'pass';
$db['sit']['database'] = 'sit';
$db['sit']['dbdriver'] = 'mysql';
$db['sit']['dbprefix'] = '';
$db['sit']['pconnect'] = TRUE;
$db['sit']['db_debug'] = TRUE;
$db['sit']['cache_on'] = FALSE;
$db['sit']['cachedir'] = '';
$db['sit']['char_set'] = 'utf8';
$db['sit']['dbcollat'] = 'utf8_general_ci';
$db['sit']['swap_pre'] = '';
$db['mappsit']['autoinit'] = TRUE;
$db['mappsit']['stricton'] = FALSE;

$db['fold']['hostname'] = 'localhost';
$db['fold']['username'] = 'root';
$db['fold']['password'] = 'pass';
$db['fold']['database'] = 'fold';
$db['fold']['dbdriver'] = 'mysql';
$db['fold']['dbprefix'] = '';
$db['fold']['pconnect'] = TRUE;
$db['fold']['db_debug'] = TRUE;
$db['fold']['cache_on'] = FALSE;
$db['fold']['cachedir'] = '';
$db['fold']['char_set'] = 'utf8';
$db['fold']['dbcollat'] = 'utf8_general_ci';
$db['fold']['swap_pre'] = '';
$db['fold']['autoinit'] = TRUE;
$db['fold']['stricton'] = FALSE;
/* End of file database.php */
/* Location: ./application/config/database.php */

I know the error is in the constructor line $DB2 = $CI->load->database($DB, TRUE); , I have to insert , update and delete from the selected db otherwise it takes default db and inserts there.

5
  • have you checked $DB is populated with correct value? Commented Sep 21, 2017 at 13:22
  • yes, its populating correctly @siddhesh Commented Sep 21, 2017 at 16:36
  • Share your database.php file from config folder and please remove your controlller code except __construct it is just useless Commented Sep 22, 2017 at 13:24
  • @siddhesh , modified the question Commented Sep 23, 2017 at 2:27
  • your ci version pelase? Commented Sep 23, 2017 at 12:37

1 Answer 1

1

You can load the database every time you perform a query, in the $ load-> database ('localhos or latestdb or sit ...', TRUE) function, the first parameter can be a variable or a function.

function myfuntion{


 $SomeDataBase = $this->load->database('localhost for example', TRUE);


    $result=$SomeDataBase->query('SELECT...');


}
Sign up to request clarification or add additional context in comments.

Comments

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.