Discuz!X3.1数据库的操作(三)

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);
时间: 2024-07-28 18:17:12

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

Discuz!X3.1数据库的操作(一)

数据库指的是以一定方式储存在一起.能为多个用户共享.具有尽可能小的余度.与应用程序彼此独立的数据集合.产品中的主题,帖子,用户,关注等等.所有数据都存储在数据库中. 官方数据字典 http://faq.comsenz.com/library/database/x3/x3_index.htm 数据库规范 http://dev.discuz.org/wiki/index.php?title=编码规范 数据表插入操作 方法名:DB::insert() 12345 <?php    DB::insert

Discuz!X3.1数据库的操作(二)

数据库自定义query 方法名:BD::query() 参数解释: $sql:自定义SQL语句 $arg:需要绑定的数据 $unbuffered:是否使用无缓存查询 12345678910111213141516 <?phpDB::query("SELECT * FROM %t WHERE id IN (%n)",array(     'test_db', array(1,2,3))); //资源集转换结果集  whlie($res = DB::fetch($query)){ 

discuz x3论坛搬家换虚拟主机完美使用教程 亲测可行 附操作步骤

第一步:备份网站数据进入后台—站长—数据库—备份,数据备份类型选择“Discuz!和 UCenter数据”,备份成功以后,数据自动保存在data文件夹下. 第二步:网站文件下载 把整个网站文件打包(虚拟主机管理控制面板一般都有整站压缩和解压的功能,在控制面板选择压缩,压缩之后的文件一般在FTP DB文件夹里面,然后把压缩包下载到本地电脑,如果虚拟主机没有在线压缩功能那就直接使用FTP下载文件到本地保存. 第三步:整理下载到本地的网站文件1.把下载下来的文件里面的下列文件删除,请完全放心删除掉这几

【SQL server初级】数据库性能优化三:程序操作优化

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一.操作符优化 1. IN.NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替IN . Not IN 不走索引的是绝对不能用的,可以用NOT EXISTS 代替 2. IS 

Discuz!X3.1后台操作技巧(整合)

Discuz!X3.1默认模板 文件 默认模板 default Common   文件夹里面是存放的公共模板文件: Forum     文件家里面存放的是论坛模板文件: Group     文件夹是存放的群组功能的模板文件: Home     文件夹是存放的家园功能的模板文件: Member   文件夹是存放会员中心的模板文件夹: Mobile    文件夹是手机版模板文件夹: Portal     文件夹是门户模板文件夹: Search    文件夹是搜索的模板文件夹: Style      

数据库性能优化三:程序操作优化

数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一.操作符优化 1. IN.NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替IN . Not IN 不走索引的是绝对不能用的,可以用NOT EXISTS 代替 2. IS 

数据库操作(三)

数据库操作(三) 1.Navicat工具 在官网下载navicat工具,然后傻瓜式安装好后双击快捷方式打开进入到主界面: 作为mysql客户端,我们需要连接mysql服务端 在弹出的界面输入mysql服务端的ip地址和端口,还有mysql用户名和密码 关于校对规则大家看看这两篇博客就明白了: https://www.cnblogs.com/adforce/p/3282404.html https://www.jb51.net/article/48775.htm 上面的步骤点击确定就建好一个数据库

三、数据库web项目对数据库的操作

1.0.JSTL与jsp实现对数据库的操作 MySql 数据库: create database if not exists CommodityDB; use CommodityDB; drop table if exists Commod; create table Commod( cid int primary key auto_increment comment '编号', cname varchar(64) not null comment '商品名称', cprice datetime

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

网络上文章很多,按步骤配置好了之后phpcms可以同步登录dz,但是dz登录后状态却无法同步到phpcms,网络上找了很多资料都大同小异,头大.只能自己调试了,废话不多说了. 以下网络上抄的安装步骤,留着自己用,有安装过的可跳过. 第一步:安装 phpcms V9 .安装 Discuz! X3.1 (同时安装 UCenter). 第二步:在 UCenter 中添加“phpsso 应用”. 1.管理员登录 Discuz! X3.1 管理中心,进入“UCenter”,点击“应用管理”.     2.