Ошибка № 1046: База данных не выбрана в Codeigniter

#php #codeigniter

#php #codeigniter

Вопрос:

Это function run_blank_sql() я создал для Installing файла SQL для Database . но этот код $this->load->database(); выдает мне ошибку. No database selected .

У меня также есть autoloaded Database . $autoload['libraries'] = array('database','session');

А также database подключен в config/database.php

 'hostname' => 'localhost',
'username' => 'root',
'password' => '********',
'database' => 'waqas',
'dbdriver' => 'mysqli',
  

И database также создается в Mysql .

   function run_blank_sql() {
        $this->load->database();
        // Set line to collect lines that wrap
        $templine = '';
        // Read in entire file
        $lines = file('./uploads/install.sql');
        // Loop through each line
        foreach ($lines as $line) {
          // Skip it if it's a comment
          if (substr($line, 0, 2) == '--' || $line == '')
            continue;
          // Add this line to the current templine we are creating
          $templine .= $line;
          // If it has a semicolon at the end, it's the end of the query so can process this templine
          if (substr(trim($line), -1, 1) == ';') {
            // Perform the query
            $this->db->query($templine);
            // Reset temp variable to empty
            $templine = '';
          }
        }
      }
  

Комментарии:

1. проверьте свой пароль ..! возможно, это неверно.

2. это похоже на ошибку установки в файле конфигурации вашей базы данных, какую версию CI вы используете? И используете ли вы это на своем локальном хостинге или на производственном сервере? И: как вы создаете базу данных (через cpanel или программно?)

Ответ №1:

Я думаю, вы не выбрали какую-либо базу данных по умолчанию для своего проекта. Вот почему вы получаете эту ошибку. Для выбора вашей базы данных вы должны указать хотя бы одну. в основном база данных загружается внутри конструктора. итак, теперь измените свой код следующим образом.

 $this->db = $this->load->database("default",TRUE);