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
У меня была такая же проблема, и я обнаружил, что это просто вопрос изменения настройки:
Измените конфигурационный файл database.php и поменяйте 'pconnect' на false. Как часть CI 3 Framework, он будет частью этого массива:
$db['default'] = array( 'pconnect' => FALSE // This value );
Или, если ваш файл конфигурации больше похож на версию CI 2:
$db['default']['pconnect'] = FALSE;
Похоже, что немного поиска, что база данных не любит постоянное соединение, возможно из соображений безопасности.
Отключить кэширование в файле database.php, определить папку кэширования в файле database.php
'cachedir' => APPPATH.'cache/db/',
настройка и использование
$this->db->cache_on();
где вы хотите, чтобы ваш запрос к базе данных был кэширован.
Не забудьте использовать
$this->db->cache_off();
после выбора запросов на нежелательные кешированные результаты.
Похоже, что codeigniter 3.0 не поддерживает сеансы с использованием базы данных, когда постоянный разрешен. form: http://www.codeigniter.com/user_guide/libraries/sessions.html?highlight=session#session-preferences
Однако есть некоторые условия, которые необходимо выполнить:
Можно использовать только ваше соединение с базой данных по умолчанию (или то, которое вы получаете как $ this-> db от ваших контроллеров). У вас должен быть включен Query Builder. Вы не можете использовать постоянное соединение. Вы не можете использовать соединение с включенным параметром cache_on.
Вы должны убедиться, что FALSE отключается без кавычек. Если вы используете «FALSE», драйвер базы данных примет это как истинное логическое значение. Система ожидает, что вы будете использовать FALSE напрямую, без кавычек. Таким образом, unset pconnect вместо использования FALSE для того, чтобы по умолчанию FALSE, или использовать FALSE в качестве значения, если вы хотите, чтобы все было упорядочено 🙂
* Persistent connection flag * * @var bool */ public $pconnect = FALSE;