Android程序员学PHP开发(38)-ThinkPHP5.0(10)后台操作数据库(1)插入-phpStudy+Sublime

    xiaoxiao2021-03-25  98

    转载请注明出处: http://blog.csdn.net/iwanghang/article/details/60962900 觉得博文有用,请点赞,请评论,请关注,谢谢!~

    我们上一篇博文,已经完成了,栏目添加页面,现在我们要关联上数据库,在栏目添加页面想数据库插入数据。

    截止到目前的项目源码:http://download.csdn.net/detail/iwanghang/9775717

    1、首先创建一个数据库:

    数据库名iwanghang,表名wh_cate,以下是字段 id catename keywords desc type 下面几张截图是创建过程:(如果有的同学不知道在哪里创建,请百度phpMyAdmin,我这边使用的是phpStudy,账号密码都是root)

    2、检查栏目添加页面的代码,确认字段一致:

    /application/admin/view/Cate/add.html

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title>后台管理</title> <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/common.css"/> <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/main.css"/> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/modernizr.min.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.config.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.all.min.js"></script> <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/lang/zh-cn/zh-cn.js"></script> </head> <body> {include file="Public/top" /} <div class="container clearfix"> {include file="Public/left" /} <!--/sidebar--> <div class="main-wrap"> <div class="crumb-wrap"> <div class="crumb-list"><i class="icon-font"></i><a href="__PUBLIC__/admin">首页</a><span class="crumb-step">></span><a class="crumb-name" href="/admin/cate/lst">栏目管理</a><span class="crumb-step">></span><span>新增栏目</span></div> </div> <div class="result-wrap"> <div class="result-content"> <form action="" method="post" id="myform" name="myform" enctype="multipart/form-data"> <table class="insert-tab" width="100%"> <tbody> <!-- <tr> --> <!-- <th width="120"><i class="require-red">*</i>栏目类型:</th> --> <!-- <td> --> <!-- <select name="type" id="catid" class="required"> --> <!-- <option value="">请选择</option> --> <!-- <option value="19">列表</option><option value="20">留言</option> --> <!-- </select> --> <!-- </td> --> <!-- </tr> --> <tr > <th style="width: 10%;"><i class="require-red">*</i>栏目名称:</th> <td> <input class="common-text required" id="title" name="catename" size="50" value="" type="text"> </td> </tr> <tr> <th>栏目关键词:</th> <td><input class="common-text" name="keywords" size="50" value="" type="text"></td> </tr> <tr> <th><i class="require-red">*</i>栏目类型:</th> <td><input name="type" value="1" type="checkbox"> 留言板</td> </tr> <tr> <th>栏目描述:</th> <td><textarea name="desc" class="common-textarea" id="content" cols="30" style="width: 98%;" rows="10"></textarea> </td> </tr> <tr> <th></th> <td> <input class="btn btn-primary btn6 mr10" value="提交" type="submit"> <input class="btn btn6" οnclick="history.go(-1)" value="返回" type="button"> </td> </tr> </tbody></table> </form> </div> </div> </div> <!--/main--> </div>   <script type="text/javascript">   //实例化编辑器   //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例   UE.getEditor('content',{initialFrameWidth:1000,initialFrameHeight:400,});   </script> </body> </html>

    3、在控制器中,获取提交的表单数据,并验证数据有效性,并插入数据库

    验证部分等待下一篇博文完善,这里先进行引导性介绍:

    验证器:

    /application/admin/validate/Cate.php

    <?php /** * 验证器 * http://www.kancloud.cn/manual/thinkphp5/129352 * 验证规则 * http://www.kancloud.cn/manual/thinkphp5/129320 * 验证规则 里面的 属性定义 * * 内置规则 比如 唯一验证等等 * http://www.kancloud.cn/manual/thinkphp5/129356 */ namespace app\admin\validate; use think\Validate; class Cate extends Validate { protected $rule = [ // 验证 栏目名称catename字段 不为空 最大25 'catename' => 'require|max:25', // 表示 栏目名称catename字段 的值是否在cate表(不包含前缀)中唯一 'catename' => 'unique:cate', ]; protected $message = [ 'catename.require' => '栏目名称不能为空!', 'catename.unique' => '栏目名称不能重复!', ]; }

    控制器:

    /application/admin/controller/Cate.php

    <?php /** * 列表控制器 * http://www.iwanghang.com/admin/cate/lst */ namespace app\admin\controller; use think\Controller; class Cate extends Controller { // 列表页面 public function lst() { /** * 查询cate表信息并打印 */ $data = \think\Db::name('cate')->find(); print_r($data); return $this->fetch(); } // 添加页面 // 对应文件 /application/admin/view/Cate/add.html // 助手函数 http://www.kancloud.cn/manual/thinkphp5/144731 // 助手函数中的:input 获取输入数据 支持默认值和过滤 // 把数据接过来以后,要判断(也就是验证数据有的有效性,不能为空等等),然后添加到数据库 // 验证器 http://www.kancloud.cn/manual/thinkphp5/129352 // 添加一条数据 http://www.kancloud.cn/manual/thinkphp5/135177 public function add() { if (request()->isPost()) { $data = [ 'catename' => input('catename'), 'keywords' => input('keywords'), 'desc' => input('desc'), //'type' => input('type'), 这样写没有默认值,我用下面的三元运算符的写法 'type' => input('type') ? input('type') : 0, // 三元运算符 如果input('type')不为空,则取input('type'),否则取0 ]; // 验证器 http://www.kancloud.cn/manual/thinkphp5/129352 // 在需要进行User验证的地方,添加如下代码即可: $validate = \think\Loader::validate('Cate'); if (!$validate->check($data)) { return $this->error($validate->getError()); die(); } // 添加一条数据 $db = \think\Db::name('cate')->insert($data); // 判断是否成功 if ($db) { return $this->success('添加栏目成功!','lst'); }else{ return $this->error('添加栏目失败!'); } return; } return $this->fetch(); } }

    4、千万不要修改数据库配置文件:

    /application/database.php

    <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'iwanghang', // 用户名 'username' => 'root', // 密码 'password' => 'root', // 端口 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'wh_', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, // Builder类 'builder' => '', // Query类 'query' => '\\think\\db\\Query', ];

    转载请注明出处: http://blog.csdn.net/iwanghang/article/details/60962900 欢迎移动开发爱好者交流沈阳或周边城市公司有意开发Android,请与我联系联系方式微信:iwanghangQQ:413711276邮箱:iwanghang@qq.com 觉得博文有用,请点赞,请评论,请关注,谢谢!~
    转载请注明原文地址: https://ju.6miu.com/read-13782.html

    最新回复(0)