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

时间:2017-01-17 12:25:44

标签: php class codeigniter-3 forge

我使用CodeIgniter 3.1.0开发应用。为了改进安装,我编写了一个Install_Controller和一个Install_Model。

我想使用Database Forge类来管理数据库架构,但在用户指南中并不是很清楚,Google上的任何内容都没有帮助。

我需要使用 $ this-> dbforge-> create_database ,因为用户对数据库一无所知,所以他要做的只是MySQL"接下来,安装&# 34;然后运行一个运行PHP作为Web服务器的批处理文件,因此从Chrome可以使用URL来安装该应用程序。

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

所以我用user,pwd,dbname等设置了 config / database.php ......即使因为我需要在app中使用它。

当我尝试加载网址以安装应用时,请告诉我错误:消息:mysqli :: real_connect():( HY000 / 1049):未知数据库'测试'

那么,如果我需要首先使用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 个答案:

答案 0 :(得分:0)

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

  1. 从自动加载器中删除数据库;
  2. 使用多个数据库,默认数据库相同,但创建第二个数据库具有空数据库名称;
  3. 将第二个数据库与Forge Class一起使用,而不是默认值,仅用于创建数据库和表;
  4. 手动更改默认数据库,然后使用它。