Discuz!X3.1數據庫的操作(三)
阿新 • • 發佈:2017-09-09
extends tro chang 思想 str 清空 optimize eply 跳過
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 |
<?php $data = C::t(‘common_credit_rule‘)->fetch_all_rule(); print_r //通過$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); |
Discuz!X3.1數據庫的操作(三)