標籤:軟體設計 判斷 func 總數 資料庫表 img 清空 設計 har
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); |
Discuz!X3.1資料庫的操作(三)