Codeigniter2 выполняет запрос к неверной базе данных .. ошибка? - PullRequest
0 голосов
/ 28 июня 2018

Я хорошо знаю CodeIgniter 2, и теперь у меня странная ошибка в существующем проекте, и я не могу ее понять.

$this->db->flush_cache();    // Just to be sure
echo $this->db->database;    // Displays "database_A"
$query = $this->db->get('table_X');

Тогда я получаю ошибку:

A Database Error Occurred
Error Number: 1146
Table 'database_B.table_X' doesn't exist
SELECT * FROM (`table_X`) WHERE `account_name` = 'bob'
Filename: /home/naturbl9/public_html/app/models/my_model.php
Line Number: 132

Вы можете ясно видеть, что при отображении текущей используемой базы данных отображается «database_A», но CodeIgniter пытается выполнить запрос в «database_B», который используется где-то еще (и используется с другим именем поверх этого! Not «db «). Если я установлю для pconnect значение false, проблема не возникнет, однако ..

database.php config:
(database_B загружается с использованием той же конфигурации, но динамически изменяя $ db ['default'] ['database'] на "database_B"):

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'database_A';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE; // If set to false, the bug doesn't occur!
$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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...