我们在开发应用的时候大多数情况下都是需要数据库的,新建数据库表就是数据库使用的基础。这篇教程我们来介绍Jsnpp框架里面怎么新建数据库表。
事实上我们可以使用数据库语句来新建数据库表,但是当您使用Jsnpp框架来开发应用时,可以完全不涉及数据库语句的使用。我们可以用下面的语句来实现新建数据库表:
$this->app->database->newTable('表名', [表结构]);
以上语句的意思很明确了,就是在“$this->app”应用里面调用“database”的“newTable”方法来实现新建数据库表。“newTable”需要两个参数,第一个是表的名称,第二个是以数组形式表示的表的结构。
第一个参数表名没什么好解释的,您根据实际情况给表确定一个名称就可以了。
我们主要来介绍第二个参数,第二个参数是一个数组,数组的格式如下:
[
[数组],
[数组],
[...]
]
我们看到这是一个嵌套数组,也就是外层数组的每一个项也是一个数组,这里的每一个子数组是一个字段的描述。有了这个概念后,我们来看一个比较贴近实际的代码:
[
['name' => 'id', 'type' => 'AUTO'],
['name' => 'user', 'type' => 'VARCHAR', 'length' => 50, 'default' => '', 'index' => 'user'],
[...]
]
上面的代码跟前面的格式代码是对应的,第一个子数组“['name' => 'id', 'type' => 'AUTO']”表示自增的id字段,第二个子数组表示名称为“user”的字段,并且字段的类型是“varchar”,长度是50,默认值是空字符串,并且需要在这个字段上面建索引。
我们还可以按上面的方法添加更多的字段描述,当您把所有的字段都描述清楚了就可以了。
到现在,您应该已经明白,“newTable”的第二个参数的这个数组是映射为一张数据库表的,而数组的每一个子数组对应的是这张表里面的每个字段。当我们把数据库表的每一个字段都按上面介绍的方法描述清楚了,那么执行“newTable”语句后就能够生成实际的数据库表了。
下面我们把描述字段的每一个属性列举如下:
# | 属性名 | 含义 |
值 |
---|---|---|---|
1 | name | 字段名 | 字符串 |
2 | type | 类型 | 数据库类型相同,新增一个是自增“AUTO”,另一个是无符号整数“UINT” |
3 | length | 长度 | 数值 |
4 | notnull | 是否可以为null | true或者false |
5 | default | 默认值 | 字符串或者数值 |
6 | index | 索引 | 索引名 |
我们可以用上面的属性来描述字段,以上所列的属性是可用的全部属性,实际使用时,并不是每个字段的描述都会用到所有属性。“name”和“type”属性是必须的,也就是说这两个属性每个字段描述时都需要,其他属性可以选择性使用。
我们看前面的例子,其中描述自增id字段的只需要两个属性:“['name' => 'id', 'type' => 'AUTO']”,而第二个字段“user”我们需要有更多的属性来对其进行描述。
再举个只需要“name”和“type”两个属性的例子:
['name' => 'userid', 'type' => 'UINT']
上面这个例子,我们使用了类型为“UINT”,这表示字段“userid”是一个无符号整数。
Jsnpp框架新建数据库表只需要使用PHP的数组就可以完成任务,您可以从数据库的语法里面解脱出来了。