插入一条数据
这里讲述如何向数据库里插入数据
基本设置
首先我们在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文件里。