W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
dzzoffice可以使用數據層來操作數據表。
使用數據層有以下的優(yōu)點:
結構清晰,便于閱讀
對查詢參數做了格式化處理,增強了安全性
集中數據操作sql語句,便于維護和更新
實現緩存操作的相關函數,解決MYSQL自身對高并發(fā)處理的性能瓶頸
使用數據層需要滿足以下的條件:
有以table_加上不帶前綴的表名的class文件
操作類class_表名的類繼承dzz_table基類
數據層的一些規(guī)范和約定:
一個數據表對應一個class文件,以table_加上不帶前綴的表名命名,盡量不操作其它表;
使用C::t('tablename')->method() 調用;
不建議使用$_G、$_POST、$_GET等全局變量(可以以參數形式帶入或者使用getglobal來獲取全局變量);
關聯查詢(JOIN)盡量拆分為單條查詢,不能拆分的放入主表的類中
除數據表文件以外,其它文件盡量不要出現SQL語句,便于后續(xù)的數據表的維護和更新
建議方法名:查詢結果返回一行記錄方法名使用fetch開頭,返回多行記錄方法名使用fetch_all開頭,查詢中使用SQL語句count函數返回一個數值的使用count開頭
數據表類繼承dzz_table基類,基類實現CURD操作,fetch方法實現了根據一個主鍵 值得到一行記錄、fetch_all方法實現了根據一組主鍵值得到多行記錄(二維數據,主鍵值為 key)、count方法返回了表的總記錄數據
DB層封裝的函數實現了addslashes,個別直接寫sql語句的需注意addslashes
基類實現緩存操作的相關函數,數據表類中增加下面的參數來啟用數據緩存(需要服務器開啟緩存)
//例如: public function __construct() { $this->_table = 'app_open'; $this->_pk = 'extid'; $this->_pre_cache_key = 'app_open_'; //緩存主鍵名前綴,為空時表示此表不支持緩存 $this->_cache_ttl =0; 緩存時間,以秒為單位,0表示永久或相關配置文件中的默認值 parent::__construct(); }
注意:開啟表緩存后,所有數據的更新、插入和刪除都需要更新相關的緩存(使用基類的更新操作會自動更新緩存)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: