数据库类

CodeIgnite提供了灵活强大的数据库类,要使用数据库类,首先需要做好数据库配置工作:

CodeIgniter 有一个配置文件用来保存数据库配置(用户名、密码、数据库名等等),这个配置文件位于 application/config/database.php。 CodeIgnite提供了多套数据库配置的机制。

数据表的增删

通常情况下,我们无需自己创建数据库,数据库是由网站管理员来维护的。但是,数据库中的内容,即数据表则是由开发人员来完成的。创建数据表有两种办法,一种是在服务器上利用管理工具直接创建,另一种是使用脚本动态创建,显然,后一种方式有更多的优势。

CodeIgnite提供了数据库工厂类一来帮助管理数据库。这个类需要加载:

$this->load->dbforge();

增加数据表

创建表涉及到这样几件事:添加字段、添加键。

设置字段

字段通过一个关联数组来创建,数组中必须包含一个 'type' 索引,代表字段的数据类型。 例如,INT、VARCHAR、TEXT 等,有些数据类型(例如 VARCHAR)还需要加一个 'constraint' 索引。

$fields = array(
    'users' => array(
        'type' => 'VARCHAR',
        'constraint' => '100',
    ),
);

关联数组能使用的项目如下:

  1. type:字段数据类型。
  2. constraint:字段长度。除了整数'100'之外,还可以是小数的形式[10, 2] (10位数字,小数两位)。
  3. unsigned : 在字段定义中生成 "UNSIGNED",值为布尔值。
  4. default : 在字段定义中生成一个默认值。
  5. null : 在字段定义中生成 "NULL" ,如果没有这个,字段默认为 "NOT NULL",值为布尔值。
  6. auto_increment : 在字段定义中生成自增标识,值为布尔值。
  7. unique : 指定为unique索引。

除了使用关联数组的形式外,还可以用字符串的形式:

'created_at timestamp default CURRENT_TIMESTAMP',
'updated_at timestamp on update CURRENT_TIMESTAMP NOT NULL',

字段定义好了之后,就可以在调用 $this->dbforge->add_field($fields); 方法来添加字段了。

$this->dbforge->add_field($fields);

设置索引

按照规范,表应该有索引,尤其是要有主键。可以使用 $this->dbforge->add_key('field') 方法来实现。 第二个参数可选,可以将其设置为主键。

$this->dbforge->add_key('site_id', TRUE);
$this->dbforge->add_key('blog_name');

创建表

字段和键都定义好了之后,使用下面的方法来创建表:

$this->dbforge->create_table('table_name');

第二个参数设置为 TRUE ,可以在定义中添加 "IF NOT EXISTS" 子句。

$this->dbforge->create_table('table_name', TRUE);
// gives CREATE TABLE IF NOT EXISTS table_name

还可以指定表的属性,例如 MySQL 的 ENGINE

$attributes = array('ENGINE' => 'InnoDB');
$this->dbforge->create_table('table_name', FALSE, $attributes);

删除表

执行一个 DROP TABLE 语句,可以选择添加 IF EXISTS 子句。

// Produces: DROP TABLE IF EXISTS table_name
$this->dbforge->drop_table('table_name',TRUE);

results matching ""

    No results matching ""