zoukankan      html  css  js  c++  java
  • Discuz!X3.1数据库的操作(三)

    MVC开发思想简介

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

    MVC的执行流程

    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);
  • 相关阅读:
    [leetcode]7. Reverse Integer
    [leetcode] 6. ZigZag Conversion
    [leetcode] 5.Longest Palindromic Substring-2
    [leetcode] 5.Longest Palindromic Substring-1
    [leetcode]4. Median of Two Sorted Arrays
    [leetcode]3. Longest Substring Without Repeating Characters
    [leetcode]2. Add Two Numbers
    [chrome]download chrome offline installer package / 下载chrome离线安装包
    [powershell]powershell upgrade package
    [python]python cockbook
  • 原文地址:https://www.cnblogs.com/alleyonline/p/7498586.html
Copyright © 2011-2022 走看看