phpcms v9二次開發之數據模型類

系統模型類:model.class.php
數據模型類的位置:/phpcms/libs/classes php

       phpcms v9二次開發中,咱們要常常須要對模塊的數據表進行查詢、添加、修改和刪除數據等操做,全部這些操做都離不開數據模型類model.class.php,它起到開發者與數據表的交互做用。model.class.php裏面封裝了許多數據表操做的方法,基本上經常使用的mysql操做語句都能從中找到,可是它又和原生態的mysql語句有所不一樣,和其它PHP內容管理系統同樣,PHPCMS也對原生態的mysql語句進行封裝簡化,以使它操做起更加方便,爲開發者省去了很多麻煩。具體咱們來看一下model.class.php代碼片段: html

 

<?php
pc_base::load_sys_class('db_factory', '', 0);
class model {
	
	...
	
	public function __construct() {
	if (!isset($this->db_config[$this->db_setting])) {
	 $this->db_setting = 'default';
	}
	$this->table_name = $this->db_config[$this->db_setting]['tablepre'].$this->table_name;
	$this->db_tablepre = $this->db_config[$this->db_setting]['tablepre'];
	$this->db = db_factory::get_instance($this->db_config)->get_database($this->db_setting);
	}
		
	/**
	 * 執行sql查詢
	 * @param $where 		查詢條件[例`name`='$name']
	 * @param $data 		須要查詢的字段值[例`name`,`gender`,`birthday`]
	 * @param $limit 		返回結果範圍[例:10或10,10 默認爲空]
	 * @param $order 		排序方式	[默認按數據庫默認方式排序]
	 * @param $group 		分組方式	[默認爲空]
	 * @param $key          返回數組按鍵名排序
	 * @return  array		查詢結果集數組
	 */
   final public function select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') {
	if (is_array($where)) $where = $this->sqls($where);
	return $this->db->select($data, $this->table_name, $where, $limit, $order, $group, $key);
	}
...
}
如上面的 select語,和mysql的select()有所不一樣,只要傳入相關參數就能夠實現mysql要用不少語句才能實現的功能。更多請看model.class.php。


模塊模型類:數據表名稱+'_model.class.php'
模塊模型類的位置:phpcms/model/ mysql

      在調用model.class.php裏面的方法時,須要先把它實例化。每一個模型對應一張數據表,每張數據表對應一個模塊模型類。如今咱們來建一個球隊的模塊模型表'fbteam',那麼它對應的模型類爲football_model.class.php,完整代碼以下: web

 

<?php

defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_sys_class('model', '', 0);//加載加載系統模型類model.class.php
class football_model extends model {//球隊模型類football_model.class.php繼承系統模型類model.class.php
       public $table_name;//聲明一個數據表變量
       public function __construct() {//初始化球隊模型類的構造函數

              $this->db_config = pc_base::load_config('database');//加載數據庫配置文件database.php

            $this->db_setting = 'default';//爲數據庫配置文件中配置數據庫連接池名稱,默認爲default

            $this->table_name = 'fbteam';//'fbteam'爲球隊數據表的名稱

              parent::__construct();//調用父類model.class.php的構造函數,以獲取父類的屬性方法

       }

}

?>
這樣咱們就創建好了一個球隊模塊的數據模型類。

 

本文首發WBlog博客,歡迎轉載!轉載請註明本文地址,謝謝。 sql


本文地址:http://www.w3note.com/web/18.html 數據庫

相關文章
相關標籤/搜索