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

转载请注明出处: 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,请与我联系
联系方式

微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com



觉得博文有用,请点赞,请评论,请关注,谢谢!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值