0%

数据库课程设计学习记录二

插入一条数据

这里讲述如何向数据库里插入数据

基本设置

首先我们在application下新建一个模块(文件夹),我起名为keshe,然后在模块下新建四个文件夹,controller, model, validate, view, 这四个文件夹分别对应控制器,模型,验证器和视图,我们首先在model下新建一个文件,命名首字母需要大写,里面的内容为:

1
2
3
4
5
6
7
8
<?php
namespace app\keshe\model;
use think\Model;
use think\model\SoftDelete;
class Shebei extends Model
{

}

class后的类名要和文件名保持一致,这里的类名即为数据表的名字

然后我们在controller文件夹下创建一个User.php,用来控制插入数据,在php文件里写入:

1
2
3
4
5
<?php
namespace app\keshe\controller;
use think\Controller;
use app\keshe\model\Shebei as UserModel;
use app\keshe\validate\Val as UserValidate;

这段代码是引用了一些东西,并且给他们起了别名,注意这里的路径,都是我们本模块下的文件,接着我们写入控制器方法:

控制器方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class User extends Controller
{
public function Shebei()
{
return $this->fetch();
}
public function insert()
{
$data = input('post.');
$val = new UserValidate();
if (!$val->check($data)){
$this->error($val->getError());
exit;
}
$user = new UserModel($data);
$ret = $user->allowField(true)->save();
if($ret){
$this-> success('插入成功','Shebei');
}
else{
$this->error('插入失败');
}
}
}

这段代码里有两个方法,一个是Shebei方法,是直接返回view里的内容,另一个是insert方法,用来插入数据,开始先将视图模版里用户输入的数据用post方法传给$data,接下来是一个验证输入内容的验证器,用来调用validate里的php文件检验输入的数据是否有误。

验证器方法

在validate文件夹下建立一个新的文件叫做Val.php, 命名无所谓,但首字母要大写,也要和上面的控制器里的命名保持一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
namespace app\keshe\validate;
use think\Validate;

class Val extends Validate
{
protected $rule = [
'shebeihao|设备号'=>'require',
'shebeimingcheng|投影仪'=>'require',
'jiage|价格'=>'require',
'peizhi|配置'=>'require',
'changjiamingcheng|厂家名称'=>'require',
'chuchangriqi|出厂日期'=>'require',
'shiyanshiming|实验室名'=>'require',
];
protected $message = [
'shebeihao.require'=>'邮箱不能为空!',
'shebeimingcheng.require'=>'设备名称不能为空!',
'jiage.require'=>'价格不能为空!',
'peizhi.require'=>'配置不能为空!',
'changjiamingcheng.require'=>'厂家名称不能为空!',
'chuchangriqi.require'=>'出厂日期不能为空!',
'shiyanshiming.require'=>'实验室名不能为空!',
];
}

这一段即为validate验证器里的代码,可以看到所有的验证规则和不符合的提示信息,require即不为空,还有min、max等操作,注意类名和文件名保持一致

网页代码

然后我们在view下新建一个文件夹,命名和控制器里的类名要保持一致,然后在其中建立一个HTML网页,命名和控制器的方法保持一致,然后用HTML代码写出各个提交表单的窗口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>添加设备信息</title>
</head>
<body>
<form method="post" class="form-x" action="insert">
<div class="form-group">
<div class="label">
<label>设备号</label>
</div>
<div class="field">
<input type="text" class="input w50" name="shebeihao" value="" data-validate="required:请输入设备号!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>设备名称</label>
</div>
<div class="field">
<input type="text" class="input w50" name="shebeimingcheng" value="" data-validate="required:请输入设备名称!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>价格</label>
</div>
<div class="field">
<input type="text" class="input w50" name="jiage" value="" data-validate="required:请输入价格!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>配置</label>
</div>
<div class="field">
<input type="text" class="input w50" name="peizhi" value="" data-validate="required:请输入配置!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>厂家名称</label>
</div>
<div class="field">
<input type="text" class="input w50" name="changjiamingcheng" value="" data-validate="required:请输入厂家名称!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>出厂日期</label>
</div>
<div class="field">
<input type="text" class="input w50" name="chuchangriqi" value="" data-validate="required:请输入出厂日期!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>实验室名</label>
</div>
<div class="field">
<input type="text" class="input w50" name="shiyanshiming" value="" data-validate="required:请输入实验室名!"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label></label>
</div>
<div class="field">
<button class="button bg-main icon-check-square-o" type="submit"> 提交</button>
</div>
</div>
</form>
</body>
</html>
建立数据库

用phpadmin或者命令行建立一个和要求一致的数据表,然后在database.php里将数据库名和前缀指到这个数据库。

完成插入操作

再然后,我们就将数据插入到数据库里,并检验是否插入成功。如果插入成功,会弹出插入成功字样,并且跳转到Shebei.html。

插入成功

结束

到这里插入工作就完成了,查看数据库即可发现多出来的数据,做这个操作最多的错误即为命名问题,一定要注意首字母大写问题和命名一致问题。application文件夹是在wamp64下的www目录下的thinkphp文件里。