您的位置:首页 > 数据库

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

2017-09-09 16:32 429 查看

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);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: