第六节视频:6.CI框架学习-实例操作添加栏目如何定义使用模型以及配置数据库与利用AR增

  本节要点:

    1、定义模型Model

    2、输入类使用

    3、数据库配置

    4、使用AR类操作数据库

    5、激活调试模式

   在application/controllers/admin/category.php栏目管理控制器中:

    

// 添加动作public function add(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){// echo '数据库操作';//首先定义一个模型,也就是说验证成功,操作模型,然后模型操作数据库;}else{$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}}

  在application/models/下新建一个模型:category_model.php(注意:定义文件名时一定要加上:_model.php):

  操作数据库:

    1、创建数据库:

      create database article charset utf8;

      use article;

      create table hd_category(cid int unsigned primary key auto_increment,  //cid作为主键

                  cname varchar(15) not null default ''  //cname作为栏目名称,默认为空;

                      );

      show tables; //查看表

      desc hd_category;  //查看表的详细信息

    2、操作表之前,需要配置数据库:

      在application/config/database.php下配置:

$active_group = 'default';//项目测试时使用test,向里面填充一些数据;
$active_record = TRUE;//为TRUE时,代表其继承AR模型,(AR模型:system/database/DB_active_rec.php)$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'article';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'hd_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

    3、在application/config/autoload.php中设置自动加载数据库;

      $autoload['libraries'] = array('database');

--------------------------------------------------------------------------------------------------

   1、在application/models/category_model.php中添加数据库:

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2017/10/8* Time: 16:40*/if ( ! defined('BASEPATH')) exit('No direct script access allowed');//栏目管理模型
class Category_model extends CI_Model{//添加public function add($data){
//        echo 'hello';$this ->db->insert('category',$data);//第一个参数为表名,第二个参数为传递的数组;
}
}

  在application/controllers/admin/category.php中:

// 添加动作public function add(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){// echo '数据库操作';//首先定义一个模型,也就是说验证成功,操作模型,然后模型操作数据库;$data = array('cname' => $_POST['cname'] //cname为字段名,数组的键名也是数据库的字段名;
            );//载入模型$this ->load ->model('category_model','cate');//第二个参数为第一个参数的别名;//执行模型里面的方法//$this ->category_model ->add();$this ->cate ->add($data);}else{$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}}

  查看数据库表里插入的数据:select * from  hd_category;

  ===============================================

  输入类:

    1、为了安全,预处理输入数据;

    2、提供helper的一些方法,取得输入数据,并预处理输入数据;

    3、防止跨站:$config['global_xss_filtering'] = TRUE;

  在system/core/Common.php定义全局函数,会被全局加载:

//下面是自定义函数
/* 格式化打印函数*/
function p($arr){echo '<pre>';print_r($arr);echo '</pre>';}/*成功提示函数*/
function success($url,$msg){ //$url表示跳转地址,$msg表示跳转提示信息header('Content-Type:text/html;charset = utf-8');//防止出现乱码$url = site_url($url);echo "<script type='text/javascript'>alert('$msg');location.href = '$url'</script>";die;
}/*错误提示信息*/
function error($msg){header('Content-Type:text/html;charset = utf-8');echo "<script type='text/javascript'>alert('$msg');window.history.back();</script>";
}

  附:application/contronllers/admin/category.php:

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2017/10/8* Time: 12:03*/if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Category extends CI_Controller{//查看栏目public function index(){echo '查看栏目';}//添加栏目public function add_cate(){$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}// 添加动作public function add(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){// echo '数据库操作';//首先定义一个模型,也就是说验证成功,操作模型,然后模型操作数据库;//var_dump($this->input ->post('abc'));die;
//                $this->input->get('name');
//                $a = $this ->input->server('HTTP_HOST');
//                echo $a;
//                p($_SERVER);die;//接收数据预处理,更安全;$data = array('cname'=>$this->input->post('cname'));//            $data = array(
//                'cname' => $_POST['cname'] //cname为字段名,数组的键名也是数据库的字段名;
//            );//载入模型$this ->load ->model('category_model','cate');//第二个参数为第一个参数的别名;//执行模型里面的方法//$this ->category_model ->add();$this ->cate ->add($data);//成功提示信息success('/admin/category/index','添加成功');}else{$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}}//编辑栏目public function editor_cate(){$this ->load ->helper('form');$this ->load ->view('/admin/editor_cate.html');}//编辑栏目动作public function editor(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){echo '数据库操作';}else{$this ->load ->helper('form');$this ->load ->view('admin/editor_cate.html');}}}

 附:application/models/category_madel.php:

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2017/10/8* Time: 16:40*/if ( ! defined('BASEPATH')) exit('No direct script access allowed');//栏目管理模型
class Category_model extends CI_Model{//添加public function add($data){
//        echo 'hello';$this ->db->insert('category',$data);//第一个参数为表名,第二个参数为传递的数组;
}
}

  激活调试模式:

    $this ->output ->enable_profiler(TRUE);

    会在模板尾部显示

    将$this ->output ->enable_profiler(TRUE);写入application/controllers/admin/category;

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2017/10/8* Time: 12:03*/if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Category extends CI_Controller{//查看栏目public function index(){echo '查看栏目';}//添加栏目public function add_cate(){$this ->output ->enable_profiler(TRUE);//激活调试模式,需注意要载入模板,在模板的底部显示;$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}// 添加动作public function add(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){// echo '数据库操作';//首先定义一个模型,也就是说验证成功,操作模型,然后模型操作数据库;//var_dump($this->input ->post('abc'));die;
//                $this->input->get('name');
//                $a = $this ->input->server('HTTP_HOST');
//                echo $a;
//                p($_SERVER);die;//接收数据预处理,更安全;$data = array('cname'=>$this->input->post('cname'));//            $data = array(
//                'cname' => $_POST['cname'] //cname为字段名,数组的键名也是数据库的字段名;
//            );//载入模型$this ->load ->model('category_model','cate');//第二个参数为第一个参数的别名;//执行模型里面的方法//$this ->category_model ->add();$this ->cate ->add($data);//成功提示信息success('/admin/category/index','添加成功');}else{$this ->load ->helper('form');$this ->load ->view('admin/add_cate.html');}}//编辑栏目public function editor_cate(){$this ->load ->helper('form');$this ->load ->view('/admin/editor_cate.html');}//编辑栏目动作public function editor(){//载入表单验证类库$this ->load ->library('form_validation');$status = $this ->form_validation ->run('cate');if($status){echo '数据库操作';}else{$this ->load ->helper('form');$this ->load ->view('admin/editor_cate.html');}}}

  

  

后盾网-CI框架实例教程-马振宇 - 学习笔记(6)相关推荐

  1. 后盾网-CI框架实例教程-马振宇 - 学习笔记(7)

    第七节视频:    CI框架学习-实例操作利用AR类对栏目进行查.删.改动作 取cid的方法: $cid = $this->uri->segment(4);//取第4个片段: /*查询对应 ...

  2. 后盾网-CI框架实例教程-马振宇 - 学习笔记(10)

    第十节视频:实例操作查看文章CI分页类使用与自定义与AR类连贯操作 1.分页类调取使用 2.如何自定义分页 一.CI框架分页类 1.载入分页类 $this ->load ->library ...

  3. 后盾网-CI框架实例教程-马振宇 - 学习笔记(8)

    第八节视频: CI框架学习-实例操作载入文章管理系统模板引入外部文件 一.文章管理功能 1.发表文章 1)对数据库添加一篇文章 a.在数据库中建立一个表 登陆数据库 -> use article ...

  4. 后盾网-CI框架实例教程-马振宇 - 学习笔记(4)

    第四节视频: 表单验证操作: 1.载入验证类 $this ->load ->library('form_validation'); 2.设置规则 $this ->form_valid ...

  5. 后盾网-CI框架实例教程-马振宇 - 学习笔记(3)

    第三节视频: 1.配置自动加载辅助函数URL: 在application/config/autoload.php中设置: $autoload['helper'] = array('url'); 2.配 ...

  6. 后盾网-CI框架实例教程-马振宇 - 学习笔记(5)

    第五节视频: 实例操作文章与栏目相关表单验证: 表单验证操作:application/controllers/admin/article.php <?php /*** Created by Ph ...

  7. PHP: 手把手编写自己的 MVC 框架实例教程

    1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...

  8. 后盾php框架下载,后盾网HD框架下载_后盾网HD框架官方下载-太平洋下载中心

    后盾网HD框架是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供后盾网HD框架官方下载.HDPHP 后盾网HDPHP框架是一个为用PHP程序语言编写网络应用程序的人员提供的软件包. 提供强大的. ...

  9. Vue学习(常用实例、脚手架搭建)-学习笔记

    文章目录 Vue学习(常用实例.脚手架搭建)-学习笔记 实例1 法1 法2 实例2 脚手架搭建 vue-cli2.0 vue-cli4.0 Vue学习(常用实例.脚手架搭建)-学习笔记 附加:阿里巴巴 ...

最新文章

  1. maven中snapshot版本和正式版本的区别
  2. 气死我的存储过程和用户定义函数
  3. FPN(Feature Pyramid Network)多尺度目标检测方案
  4. NAS——在VMware 15虚拟机中安装黑群晖DSM解决方案
  5. (需求实战_进阶_05)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试
  6. python标准库之smtplib,poplib,imaplib,smptd
  7. html转义成velocity,改造Velocity模板引擎让$[!]{}输出默认进行html转义,并增加$#{}语法支持不转义输出...
  8. “夸夸机器人” App 来了:变身百万粉丝大 V,48 万人给你的帖子点赞
  9. 关于云数据库的“担忧”,你占了几条?
  10. 【GNN】图网络|图神经网络(GNN)结构化数据分析
  11. 数据库表的建立与基本操作
  12. 复变函数第一章第二章知识脑图
  13. 怎样快速做个 BI 系统
  14. c语言面试100问题及答案,【编程C语言面试题】面试问题:C语言面试大全… - 看准网...
  15. NB-IoT 基于蜂窝的窄带物联网
  16. Fspecial函数用法
  17. linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
  18. JavaGUI——背景图片设置
  19. mysql实验视图与索引_视图和索引(数据库实验4)【借鉴实操】
  20. Node.js检查路径是文件还是目录

热门文章

  1. 拓扑排序[TopologicalSort]
  2. ssm java上传图片预览_基于JAVA的SSM图片浏览系统
  3. 【程序源代码】驾校模拟考试系统
  4. python去除马赛克
  5. Apple主推的智能家居是什么、怎么用?一篇文章带你从零完全入门 HomeKit
  6. 【c语言】设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
  7. PC端微信QQ第三方登录
  8. 淘宝x-sign、x-mini-wua、 x-sgext、 x-umt、 wua加密算法
  9. 32. Longest Valid Parenthese
  10. Leetcode 20.Valid Parenthese