Сообщение: настроенное соединение с базой данных является постоянным. Aborting

Codeigniter 2 до 3 версии после обновления, я получаю эту ошибку ..
С чего бы это?

Обнаружено неперехваченное исключение

Тип: Исключение

Сообщение: настроенное соединение с базой данных является постоянным. Aborting.

Имя файла: /var/www/vhosts/xxx.com/app/system/libraries/Session/drivers/Session_database_driver.php

Номер строки: 94

Backtrace:

Файл: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php
Линия: 11
Функция: __construct

Файл: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php
Линия: 52
Функция: __construct

Файл: /var/www/vhosts/xxx.com/app/application/controllers/Dashboard.php
Линия: 7
Функция: __construct

Файл: /var/www/vhosts/xxx.com/application/index.php
Линия: 293
Функция: require_once

6

Решение

У меня была та же проблема, и я обнаружил, что это просто вопрос изменения настроек:

Измените файл конфигурации database.php и установите для параметра pconnect значение false. Как часть CI 3 Framework, он будет частью этого массива:

$db['default'] = array(
'pconnect' => FALSE // This value
);

Или, если ваш конфигурационный файл больше похож на версию CI 2:

$db['default']['pconnect'] = FALSE;

Похоже, что некоторые поиски показывают, что базе данных не нравится постоянное соединение, возможно из-за соображений безопасности.

13

Другие решения

Отключите кэширование в файле database.php, определите папку кэширования в database.php с помощью

'cachedir' => APPPATH.'cache/db/',

настройка и использование только

$this->db->cache_on();

команда, где вы хотите, чтобы ваш запрос к базе данных был кэширован.

Не забудьте использовать

$this->db->cache_off();

после выбора запросов на нежелательные кэшированные результаты.

1

Кажется, что codeigniter 3.0 не поддерживает сеансы с использованием базы данных, когда постоянный включен.
форма: http://www.codeigniter.com/user_guide/libraries/sessions.html?highlight=session#session-preferences

Однако есть некоторые условия, которые должны быть выполнены:

Только ваше соединение с базой данных по умолчанию (или то, к которому вы обращаетесь как
$ this-> db от ваших контроллеров). Вы должны иметь запрос
Строитель включен. Вы не можете использовать постоянное соединение. Ты не можешь
использовать соединение с включенной настройкой cache_on.

0

Вы должны убедиться, что FALSE выходит без кавычек. Если вы используете ‘FALSE’, драйвер базы данных примет это как истинное логическое значение. Система ожидает, что вы будете использовать FALSE напрямую, без кавычек. Таким образом, отключите pconnect вместо использования ‘FALSE’, чтобы по умолчанию установить значение FALSE, или используйте FALSE в качестве значения, если вы хотите, чтобы все было упорядочено 🙂

 * Persistent connection flag
*
* @var bool
*/
public $pconnect        = FALSE;
0