后盾网-CI框架实例教程-马振宇 - 学习笔记(6)
第六节视频: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)相关推荐
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(7)
第七节视频: CI框架学习-实例操作利用AR类对栏目进行查.删.改动作 取cid的方法: $cid = $this->uri->segment(4);//取第4个片段: /*查询对应 ...
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(10)
第十节视频:实例操作查看文章CI分页类使用与自定义与AR类连贯操作 1.分页类调取使用 2.如何自定义分页 一.CI框架分页类 1.载入分页类 $this ->load ->library ...
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(8)
第八节视频: CI框架学习-实例操作载入文章管理系统模板引入外部文件 一.文章管理功能 1.发表文章 1)对数据库添加一篇文章 a.在数据库中建立一个表 登陆数据库 -> use article ...
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(4)
第四节视频: 表单验证操作: 1.载入验证类 $this ->load ->library('form_validation'); 2.设置规则 $this ->form_valid ...
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(3)
第三节视频: 1.配置自动加载辅助函数URL: 在application/config/autoload.php中设置: $autoload['helper'] = array('url'); 2.配 ...
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(5)
第五节视频: 实例操作文章与栏目相关表单验证: 表单验证操作:application/controllers/admin/article.php <?php /*** Created by Ph ...
- PHP: 手把手编写自己的 MVC 框架实例教程
1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...
- 后盾php框架下载,后盾网HD框架下载_后盾网HD框架官方下载-太平洋下载中心
后盾网HD框架是Php源码频道下深受用户喜爱的软件,太平洋下载中心提供后盾网HD框架官方下载.HDPHP 后盾网HDPHP框架是一个为用PHP程序语言编写网络应用程序的人员提供的软件包. 提供强大的. ...
- Vue学习(常用实例、脚手架搭建)-学习笔记
文章目录 Vue学习(常用实例.脚手架搭建)-学习笔记 实例1 法1 法2 实例2 脚手架搭建 vue-cli2.0 vue-cli4.0 Vue学习(常用实例.脚手架搭建)-学习笔记 附加:阿里巴巴 ...
最新文章
- maven中snapshot版本和正式版本的区别
- 气死我的存储过程和用户定义函数
- FPN(Feature Pyramid Network)多尺度目标检测方案
- NAS——在VMware 15虚拟机中安装黑群晖DSM解决方案
- (需求实战_进阶_05)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试
- python标准库之smtplib,poplib,imaplib,smptd
- html转义成velocity,改造Velocity模板引擎让$[!]{}输出默认进行html转义,并增加$#{}语法支持不转义输出...
- “夸夸机器人” App 来了:变身百万粉丝大 V,48 万人给你的帖子点赞
- 关于云数据库的“担忧”,你占了几条?
- 【GNN】图网络|图神经网络(GNN)结构化数据分析
- 数据库表的建立与基本操作
- 复变函数第一章第二章知识脑图
- 怎样快速做个 BI 系统
- c语言面试100问题及答案,【编程C语言面试题】面试问题:C语言面试大全… - 看准网...
- NB-IoT 基于蜂窝的窄带物联网
- Fspecial函数用法
- linux新硬盘装系统,目前是windows,要全新硬盘安装linux,该怎么操作?
- JavaGUI——背景图片设置
- mysql实验视图与索引_视图和索引(数据库实验4)【借鉴实操】
- Node.js检查路径是文件还是目录
热门文章
- 拓扑排序[TopologicalSort]
- ssm java上传图片预览_基于JAVA的SSM图片浏览系统
- 【程序源代码】驾校模拟考试系统
- python去除马赛克
- Apple主推的智能家居是什么、怎么用?一篇文章带你从零完全入门 HomeKit
- 【c语言】设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
- PC端微信QQ第三方登录
- 淘宝x-sign、x-mini-wua、 x-sgext、 x-umt、 wua加密算法
- 32. Longest Valid Parenthese
- Leetcode 20.Valid Parenthese