База данных не выбрана в codeigniter - PullRequest
0 голосов
/ 22 марта 2019

Я сделал эту функцию, чтобы брать значения из формы и перезаписывать config / database.php.

 function configure_database() {
        // write database.php
        $data_db = file_get_contents('./uploads/database.php');
       // session_start();
        $data_db = str_replace('%DATABASE%',    $_SESSION['dbname'],    $data_db);
        $data_db = str_replace('%USERNAME%',    $_SESSION['username'],  $data_db);
        $data_db = str_replace('%PASSWORD%',    $_SESSION['password'],  $data_db);
        $data_db = str_replace('%HOSTNAME%',    $_SESSION['hostname'],  $data_db);
        file_put_contents('./application/config/database.php', $data_db);
        $this->run_blank_sql();
      }

и успешно overwrites config/database.php. на последнем из function я написал $this->run_blank_sql();, который вызывает run_blank_sql() Я написал это function для запуска SQL в uploads каталоге.

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

Но это дает мне эту ошибку.

enter image description here

configure_database() успешно перезаписывает эти значения.

'hostname' => '%HOSTNAME%',
    'username' => '%USERNAME%',
    'password' => '%PASSWORD%',
    'database' => '%DATABASE%',
    'dbdriver' => 'mysqli',

К

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

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Где бы вы ни работали, проблема drop (я не вижу в вашем коде). Вы удаляете таблицу, но не указываете схему, где находится эта таблица.

Даже если у вас есть только одна таблица с именем category, вам необходимо точно указать, в какой схеме она находится. Измените свой оператор drop на: drop table schema.category.

Это не имеет ничего общего с $db['default']['database'] = "YOUR_DB"; в конфигурации. Это просто стандартный SQL

0 голосов
/ 22 марта 2019

В enter image description here четко сказано, что No Database Selected


Я думаю, вам нужно указать

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

в /application/config/database.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...