MVC开发思想简介

MVC全名是Model-View-Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计思想。使用一种业务逻辑,数据和显示分离的方法组织代码,实现代码复用的最大化。

MVC的执行流程

mvc执行流程

模型目录介绍

内置模型目录

产品根目录/source/class/table/table_xxx.php

插件模型目录

产品根目录/source/plugin/插件目录/table/table_xxx.php

模型调用方法

内置模型调用

C::t('模型类名')->模型方法()

1
2
3
4
5
6
7
8
<?php
    $data = C::t('common_credit_rule')->fetch_all_rule();
    print_r($data);
    
    //通过$action动作取出数据
    $data1 = C::t('common_credit_rule')->fetch_all_by_action(reply);
    print_r($data1);
?>

插件模型调用

C::t('#插件标识符#模型类名')->模型方法()

1
2
3
4
<?php
    //调用插件模型
    $data2 = C::t('#licai#test_db')->test()
?>

模型基类属性介绍

属性名 属性值
$_table 数据表名称
$_pk 数据表主键名称
%_pre_cache_key 数据缓存Key前缀

用法:

1
2
3
$this->_table = 'test_db';//数据库表名称
$this->_pk    = 'dId';//数据表主键名称
$this->_pre_cache_key = 'test_db_';//数据缓存

模型基类CURD方法介绍

方法名 方法作用
insert() 插入数据
delete() 删除数据
update 更新数据
fetch() 根据主键值查询数据
fetch_all() 根据主键值查询数据组
range() 查询指定范围的数据
count() 计算数据表数据总数

用法(模型):

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
<?php
    //防止程序跳过主程序执行判断
    if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
    }
    
    class table_test_db extends discuz_table{
            public function __construct() {
        
                $this->_table = 'test_db';//数据库表名称
                $this->_pk    = 'dId';//数据表主键名称
                //$this->_pre_cache_key = 'test_db_';//数据缓存
        
                parent::__construct();
            }
            //插入数据
            public function add_name($name){
                  $this->insert(array(
                          'dname'=>$name
                  ));
                }
            //更新数据
            public function change_name_by_id($dId,$name){
                  $this->update($dId,array(
                       'dName' => $name, 
                  ));
                }
            //删除数据
            public function delete_by_id($dId){
                   $this->delete($dId);
                }
            //取数据区间
            public function get_last_name(){
                   return $this -> range(0,5,'DESC');
                }

}
?>

用法(控制器):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    header("content-type:text/html;charset=utf-8");
    //调用插件模型
    $dId = 100;
    $name = "2121312";
    //C::t('#licai#test_db')->add_name($name);
    //C::t('#licai#test_db')->change_name_by_id('2',$name);
    //C::t('#licai#test_db')->delete_by_id($dId);
    //$data = C::t('#licai#test_db')->fetch($dId);取单条数据
    //print_r($data);
    //$data = C::t('#licai#test_db')->fetch_all(array(1,2,5));取多条数据
    //print_r($data);
    //$data = C::t('#licai#test_db')->count();计算数据
    //print_r($data);
    $data = C::t('#licai#test_db')->get_last_name();
    print_r($data);
?>

模型基类其他方法介绍

方法名 方法作用
truncate() 清空数据表
optimize() 优化数据表
checkpk 检查主键是否设置
fetch_all_field() 取出所有字段
getTable() 获取表名称

用法

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    header("content-type:text/html;charset=utf-8");
    //调用插件模型
    $dId = 100;
    $name = "2121312";
    //C::t('#licai#test_db')->truncate();//清空数据表
    //C::t('#licai#test_db')->optimize();
    //C::t('#licai#test_db')->checkpk();//检查是否设置pk值主键
    //$data =  C::t('#licai#test_db')->fetch_all_field();//取出所有字段
    //print_r($data);
    //$data =  C::t('#licai#test_db')->getTable();//获取表名称
    //print_r($data);

转载于:https://www.cnblogs.com/alleyonline/p/7498586.html

Discuz!X3.1数据库的操作(三)相关推荐

  1. Discuz!X3.4全新安装详细图文教程

    说明:本文档用于帮助您全新安装完整的 Discuz! X3.4 社区软件 一.下载 Discuz! X3.4 到本地或者服务器上 下载地址:https://gitee.com/3dming/Discu ...

  2. Mysql数据库(三)——mysql数据库高级操作

    Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...

  3. 【数据库】(三)-- mysql 数据库操作应用

    [数据库](三)-- mysql 数据库操作应用 操作说明 使用 navicat 针对 mysql 进行 sql 的使用,mysql 运行在本地的 docker 环境的应用容器中. 语法和关键字什么的 ...

  4. 24-在线考试系统数据库-班级学生信息数据操作(三)

    24-在线考试系统数据库-班级学生信息数据操作(三) 项目描述 伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的"在线考试系统"也得到了当今远程教育研究者的关注,考试是考察 ...

  5. 数据存储之 SQLite 数据库操作(三)

    上一讲中我们讲到了SQLite数据库的操作方法 [数据存储之SQLite数据库操作(二)],我们主要是以SQL语句对数据库进行增删改查,这一讲我们来学习一下 Android 建议的对数据库的操作方法 ...

  6. discuz x3.1 整站搬家换域名攻略

    一.备份网站数据 请关闭论坛,尤其是数据备份和还原时请不要操作论坛. 进入后台→站长→数据库→备份,备份成功以后,数据保存在 data/backup_**. 二.备份网站文件 把整个网站打包,下载下来 ...

  7. DZ X3用哪个版本MySQL_ComsenzEXP X3版本发布(集成 APM 环境和 Discuz! X3)【最后更新:20130511】...

    本帖最后由 xooass 于 2016-8-9 15:30 编辑 更新日志:2013-05-11 发布首个测试版本 ComsenzEXP X3 beta20130511 一.什么是ComsenzEXP ...

  8. discuz3.4安装php,Discuz!X3.4论坛源码下载 及 全新安装教程

    Discuz!X3.4论坛源码下载 及 全新安装教程 一.下载 Discuz! X3.4 到本地或者服务器上 简体GBK.简体UTF8.繁体UTF8的打包版下载: 二.解压并上传 Discuz! X3 ...

  9. phpcms v9和discuz X3.1实现同步登陆退出论坛(已实现)

    网络上文章很多,按步骤配置好了之后phpcms可以同步登录dz,但是dz登录后状态却无法同步到phpcms,网络上找了很多资料都大同小异,头大.只能自己调试了,废话不多说了. 以下网络上抄的安装步骤, ...

最新文章

  1. 如何彻底禁用VS 2008的智能感知功能
  2. 137% YOLOv3加速、10倍搜索性能提升!百度飞桨推出模型压缩神器
  3. UNIX系统编程(2)
  4. ThinkPHP如何判断一个更新操作是否成功
  5. 让IE兼容background-size的方法_background-size ie下使用
  6. spring--aop总结
  7. 更好的对比样本选择,更好的对比效果
  8. OpenCASCADE绘制测试线束:OCAF 命令之通用属性命令
  9. ASP.NET Core开发常见“坑”
  10. 怎样编译libdb_比特币编译(Ubuntu 16.04)
  11. Controller向View传值方式总结
  12. react学习(41)----react中的jsx简介
  13. Part5 数据的共享与保护 5.4类的友元5.5共享数据的保护
  14. 计算机一级13点,2013年计算机一级考试MsOffice备考题及答案(13)
  15. 在react里写原生js_从零开始使用react+antd搭建项目
  16. Java中大数据数组,Java基础学习笔记之数组详解
  17. DNS服务器配置详解
  18. SpringBoot如何实现自动配置
  19. python中wordcloud函数不同形状云图_10行Python代码生成任意形状的文字云图
  20. cad文字递增快捷键_AutoCAD常用快捷键命令大全(文字版)

热门文章

  1. MySQL备份工具收集
  2. 【最小费用最大流】N. April Fools' Problem (medium)
  3. jQueryui autocomplete使用示例
  4. MongoDb 安全配置
  5. Spring标签mvc:annotation-driven/解读
  6. iOS 10 SceneKit 新特性 – SceneKit 制作 3D 场景框架
  7. js和 jquery对象
  8. 关于bind1st和bind2nd
  9. GUI(一) 一些自已看的东西
  10. 构建一个计算机网络,计算机网络--网络构建(一)