Я использую CodeIgniter 3.1.0 для разработки приложения. Чтобы улучшить установку, я написал Install_Controller и Install_Model.Codeigniter 3 - Как использовать класс Forge для создания схемы базы данных?
Я хочу использовать класс базы данных Forge для управления схемой базы данных, но это не очень понятно в руководстве пользователя, и ничего не помогает в Google.
мне нужно использовать $ this-> dbforge-> create_database, потому что пользователь ничего не знает о базе данных, так что все, что он будет делать это MySQL «Далее, следующий, установить», а затем запустить пакетный файл, запустить PHP как веб-сервер, поэтому из Chrome он может использовать URL для установки приложения.
Руководство пользователя говорит: Чтобы инициализировать класс Forge, ваш драйвер базы данных должен быть запущен, так как класс forge полагается на него.
Так что я настроил конфигурации/database.php с пользователем, PWD, DBNAME и так далее ... Даже потому, что мне это нужно использовать в приложении.
При попытке загрузить URL, чтобы установить приложение, дайте мне ошибку: сообщение: Mysqli :: real_connect(): (HY000/1049): Неизвестный базы данных 'тест'
Итак, как могу ли я использовать класс Forge для создания схемы базы данных, если мне нужно ее сначала?
Некоторый код ...
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'test',
'dbdriver' => 'mysqli'
);
$autoload['libraries'] = array('database');
class Install extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->model('install_model');
$this->install_model->createDabase();
}
}
class Install_model extends CI_Model {
function __construct() {
parent::__construct();
}
function createDabase() {
$this->load->dbforge();
if ($this->dbforge->create_database('test'))
echo 'Database created!';
else
echo 'Database error!';
}
}
Я сделал очень грязное обходное решение, надеюсь, что кто-то даст мне хороший ответ ... ** 1. ** Удалить базу данных с автозагрузчика. ** 2. ** Используйте несколько баз данных, по умолчанию один и тот же, но я создал вторую, у которой есть пустое имя базы данных. ** 3. ** Используйте вторую базу данных с классом Forge, а не по умолчанию. ** 4. ** Загрузите вручную базу данных по умолчанию в других контроллерах. – Sirius