Discuz!X3.1資料庫的操作(三)

來源:互聯網
上載者:User

標籤:軟體設計   判斷   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資料庫的操作(三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.