Discuz!X3.1数据库的操作(三)
生活随笔
收集整理的這篇文章主要介紹了
Discuz!X3.1数据库的操作(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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); |
轉載于:https://www.cnblogs.com/alleyonline/p/7498586.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Discuz!X3.1数据库的操作(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab图像处理教程
- 下一篇: 计算机设计思想 —— 代理(proxy)