Discuz!X3.1数据库的操作
Posted alleyonline的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Discuz!X3.1数据库的操作相关的知识,希望对你有一定的参考价值。
MVC开发思想简介
MVC全名是Model-View-Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计思想。使用一种业务逻辑,数据和显示分离的方法组织代码,实现代码复用的最大化。
MVC的执行流程
模型目录介绍
内置模型目录
产品根目录/source/class/table/table_xxx.php
插件模型目录
产品根目录/source/plugin/插件目录/table/table_xxx.php
模型调用方法
内置模型调用
C::t(‘模型类名‘)->模型方法()
1
2 3 4 5 6 7 8 |
插件模型调用
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); |
以上是关于Discuz!X3.1数据库的操作的主要内容,如果未能解决你的问题,请参考以下文章