Я работаю над проектом, который использует Kohana 3.3. У меня возникла проблема, когда я хочу подключиться к базе данных. Приложение говорит мне, что использует MySQL, и оно уменьшилось.
Чтобы решить эту проблему, я загрузил драйвер MySQLi для Kohana 3.3 и выполнил инструкции (создание папки mysqli в папке модулей и добавление новой строки в bootstrap.php для ее включения).
Однако, когда я пытаюсь выполнить любые действия с базой данных, он все еще говорит, что использует MySQL. Ошибка читает: «Database_Exception [8192]: mysql_connect (): расширение mysql устарело и будет удалено в будущем: вместо этого используйте mysqli или PDO».
Строка, которую я использую для включения модуля, – 'mysqli' => MODPATH.'mysqli', // MySQLi support for Kohana
Драйвер MySQLi, который я использую, – это (ссылки на github).
Кто-нибудь может понять, что происходит не так?
Заранее спасибо.
Простое включение модуля недостаточно.
Начиная с Kohana 3.3, автозагрузчик чувствителен к регистру , поэтому MODPATH/mysqli/classes/kohana/database/mysqli.php
должен стать, например, MODPATH/mysqli/classes/Kohana/Database/MySQLi.php
.
Вы должны отредактировать свой APPPATH / config / database.php и установить драйвер в «MySQLi» или установить Database :: $ default на правильное имя экземпляра базы данных по умолчанию. (Тот, который использует «MySQLi» в качестве драйвера.)
И, чтобы быть уверенным, НЕ редактируйте файлы конфигурации вне APPPATH. Вместо этого скопируйте файл в APPPATH и отредактируйте этот файл. Обычно вам не нужно редактировать файлы за пределами APPPATH. Разумеется, возможно обновление модулей для работы с новой версией. Но конфигурационные файлы вне APPPATH должны служить примерами / чертежами.
Я столкнулся с этим вопросом.
Проблема обсуждалась на форумах Kohana. В следующей версии (3.4) будут внесены изменения в модуль базы данных Kohana, чтобы вы могли использовать библиотеку MySQLi.
До тех пор я отключил устаревшие ошибки, возникающие при изменении error_reporting в index.php
error_reporting(E_ALL & ~E_DEPRECATED);
Надеюсь это поможет