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

Php Codeigniter 3-如何使用Forge类创建数据库模式?,php,class,codeigniter-3,forge,Php,Class,Codeigniter 3,Forge,我正在使用CodeIgniter 3.1.0开发一个应用程序。为了改进安装,我编写了一个Install\u控制器和一个Install\u模型 我想使用Database Forge类来管理数据库模式,但在《用户指南》中不是很清楚,在Google上也没有任何帮助 我需要使用$this->dbforge->create_database,因为用户对数据库一无所知,所以他要做的就是MySQL“下一步,下一步,安装”,然后运行一个批处理文件,将PHP作为web服务器运行,这样他就可以从Chrome上使用U

我正在使用CodeIgniter 3.1.0开发一个应用程序。为了改进安装,我编写了一个Install\u控制器和一个Install\u模型

我想使用Database Forge类来管理数据库模式,但在《用户指南》中不是很清楚,在Google上也没有任何帮助

我需要使用$this->dbforge->create_database,因为用户对数据库一无所知,所以他要做的就是MySQL“下一步,下一步,安装”,然后运行一个批处理文件,将PHP作为web服务器运行,这样他就可以从Chrome上使用URL安装应用程序

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

因此,我使用user、pwd、dbname等设置了config/database.php。。。甚至因为我需要它在应用程序中使用

当我尝试加载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!';
    }
}

在尝试并获得很多意见后,唯一的办法是我评论道:

  • 从自动加载程序中删除数据库
  • 使用多个数据库,默认数据库相同,但创建第二个数据库名称为空
  • 使用Forge类的第二个数据库,而不是默认数据库,仅用于创建数据库和表
  • 手动更改默认数据库的名称,然后使用它

  • 我做了一个非常肮脏的变通,我希望有人给我一个好的答案。。。1.从自动加载程序中删除数据库。2.使用多个数据库,默认数据库是相同的,但我创建了第二个数据库,其数据库名为空。3.使用Forge类的第二个数据库,而不是默认数据库。4.在其他控制器中手动加载默认数据库。