Codeigniter showing error: No database selected

2020-04-27 00:25发布

问题:

I am using Codeigniter's DBForge class to create a database and table within that database.

Here is code:

if ($this->dbforge->create_database('new_db')) {
     $fields = array(
         'blog_id' => array(
              'type' => 'INT',
              'constraint' => 5,
              'unsigned' => TRUE,
              'auto_increment' => TRUE
          ),
          'blog_title' => array(
              'type' => 'VARCHAR',
              'constraint' => '100',
          ),
          'blog_author' => array(
              'type' => 'VARCHAR',
              'constraint' => '100',
              'default' => 'King of Town',
          ),
          'blog_description' => array(
              'type' => 'TEXT',
              'null' => TRUE,
          ),
     );
     $this->dbforge->add_field($fields);
     $this->dbforge->add_key('blog_id', TRUE);
     $this->dbforge->create_table('blog', TRUE);
}

The above mentioned code is written inside index function of controller. When the following code is executed, it shows error as, No database selected. Does anyone have ant idea why it is happening. Any help is appreciated.

回答1:

You need to specify

 $db['default']['database'] = "new_db"; 

in database.php



回答2:

Just refer to database.php file inside application/config folder. Make sure you have proper values for database name and other things in the following lines present in database.php file

$db['default'] = array(
'dsn'   => '',
'hostname' => 'localhost',
'username' => 'your username', //By default it is root
'password' => 'your password', //By default this field is empty
'database' => 'database name',//The error that you are getting is because of this only. Specify your database name here
'dbdriver' => 'mysqli',

Hope it helps



回答3:

If you have set the default database in config/database.php and it is still not working, you probably should save the file in case you forget to do that.