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!';
}
}
经过尝试,得到了很多意见,唯一的办法就是我评论的:
- 从自动加载器中删除数据库;
- 使用多个数据库,默认一个是相同的,但创建第二个数据库名称为空的数据库;
- 使用 Forge 的第二个数据库 Class,而不是默认的,仅用于创建数据库和表;
- 手动更改默认数据库,然后使用它。
我正在使用 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!';
}
}
经过尝试,得到了很多意见,唯一的办法就是我评论的:
- 从自动加载器中删除数据库;
- 使用多个数据库,默认一个是相同的,但创建第二个数据库名称为空的数据库;
- 使用 Forge 的第二个数据库 Class,而不是默认的,仅用于创建数据库和表;
- 手动更改默认数据库,然后使用它。