Codeigniter 3 - 如何使用 Forge Class 创建数据库模式?

Codeigniter 3 - How to use Forge Class to create a database schema?

我正在使用 CodeIgniter 3.1.0 开发应用程序。为了改进安装,我写了一个 Install_Controller 和一个 Install_Model.

我想使用 Database Forge class 来管理数据库模式,但用户指南中的内容不是很清楚,Google 上也没有任何帮助。

我需要使用$this->dbforge->create_database,因为用户对数据库一无所知,所以他只会MySQL "Next, next, install" 然后 运行 一个批处理文件 运行 PHP 作为网络服务器,所以从 Chrome 他可以使用 URL 安装应用程序.

用户指南说:为了初始化 Forge class,您的数据库驱动程序必须已经是 运行ning,因为 Forge class 依赖于它.

所以我设置了 config/database.php 用户、密码、数据库名等等...即使因为我需要它来使用在应用程序中。

当我尝试加载 URL 以安装应用程序时,出现错误:消息:mysqli::real_connect(): (HY000/1049): Unknown数据库 'test'

那么,如果我需要先拥有它,我该如何使用 Forge Class 创建数据库模式?

一些代码...

$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 的第二个数据库 Class,而不是默认的,仅用于创建数据库和表;
  4. 手动更改默认数据库,然后使用它。