Discuz!X3.1數據庫的操作(三)


MVC開發思想簡介

MVC全名是Model-View-Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,它是一種軟件設計思想。使用一種業務邏輯,數據和顯示分離的方法組織代碼,實現代碼復用的最大化。

MVC的執行流程

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM