discuz mysql查询_Discuz!X/数据库 DB:: 函数操作方法
本篇對(duì)數(shù)據(jù)庫操作函數(shù)db進(jìn)行講解。DB::table($tablename)獲取正確帶前綴的表名,轉(zhuǎn)換數(shù)據(jù)庫句柄,
DB::delete($tablename, 條件,條數(shù)限制)刪除表中的數(shù)據(jù)
DB::insert($tablename, 數(shù)據(jù)(數(shù)組),是否返回插入ID,是否是替換式,是否silent)插入數(shù)據(jù)操作
DB::update($tablename, 數(shù)據(jù)(數(shù)組)條件)更新操作
DB::fetch(查詢后的資源)從結(jié)果集中取關(guān)聯(lián)數(shù)組,注意如果結(jié)果中的兩個(gè)或以上的列具有相同字段名,最后一列將優(yōu)先。
DB::fetch_first($sql)取查詢的第一條數(shù)據(jù)fetch
DB::fetch_all($sql)查詢并fetch
DB::result_first($sql)查詢結(jié)果集的第一個(gè)字段值
DB::query($sql)普通查詢
DB::num_rows(查詢后的資源)獲得記錄集總條數(shù)
DB::_execute(命令,參數(shù))執(zhí)行mysql類的命令
DB::limit(n,n)返回限制字串
DB::field(字段名, $pid) 返回條件,如果為數(shù)組則返回 in 條件
DB::order(別名, 方法)排序
注意事項(xiàng):所有數(shù)據(jù)在插入數(shù)據(jù)庫之前,均需要進(jìn)行addslashes()處理,以免特殊字符未經(jīng)轉(zhuǎn)義在插入數(shù)據(jù)庫的時(shí)候出現(xiàn)錯(cuò)誤。Discuz!中所有通過 GET, POST, FILE,取得的變量默認(rèn)情況下已經(jīng)使用了addslashes()進(jìn)行了轉(zhuǎn)義,不必重復(fù)進(jìn)行。如果數(shù)據(jù)處理必要(例如用于直接顯示),可以使用 stripslashes() 恢復(fù),但數(shù)據(jù)在插入數(shù)據(jù)庫之前必須再次進(jìn)行轉(zhuǎn)義。緩存文件中,一般對(duì)緩存數(shù)據(jù)的值采用 addcslashes($string, ''\')進(jìn)行轉(zhuǎn)義。
最常見的查詢數(shù)據(jù)庫舉例:
獲取單條數(shù)據(jù):$rs = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE uid=1");
這里獲取的是UID為1的用戶的數(shù)據(jù),但是discuz內(nèi)還有一個(gè)getuserbyuid可以獲取用戶數(shù)據(jù)
獲取多條數(shù)據(jù):$rs = DB::fetch_all("SELECT * FROM " .DB::table('common_member')." WHERE uid in(1,2,3,4,5,6)");
這里獲取的是UID為1 2 3 4 5 6的用戶的信息
插入數(shù)據(jù)講解
調(diào)用方式:DB::insert()
說明:關(guān)于是否是否。只要值為1就是 是,否就直接無視或者留空
舉例:
首先是存在一個(gè)表名為pre_test
表內(nèi)有以下字段:id(遞增) name uid 字段類型就別管了if(DB::insert('test',array('id'=>NULL,'name'=>'me','uid'=>1))) showmessage("數(shù)據(jù)插入成功");
說明:這邊的數(shù)組的鍵名就是數(shù)據(jù)表中的字段名,鍵值就是插入的對(duì)應(yīng)字段的值DB::fetch_all('SELECT * FROM %t WHERE panel=%d', array($this->_table, $panel), 'uid');
DB::fetch_all('SELECT * FROM %t WHERE uid=%d ORDER BY dateline DESC', array($this->_table, $uid), 'bid') : array();
注:
DZ中%號(hào)會(huì)當(dāng)做參數(shù),需要你傳入,首先第一個(gè)你可以使用DB::table($this->_table)代替,第二個(gè)你可以用實(shí)實(shí)在在的表明,第三個(gè)的話你可以吧數(shù)值計(jì)算出來后填進(jìn)去,這樣的話應(yīng)該就不會(huì)出現(xiàn)問題了
本篇對(duì)函數(shù)操作進(jìn)行總結(jié)和整理,更多相關(guān)知識(shí)請(qǐng)關(guān)注php中文網(wǎng)。
相關(guān)推薦:
總結(jié)
以上是生活随笔為你收集整理的discuz mysql查询_Discuz!X/数据库 DB:: 函数操作方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在React.js文件中设置标签的背
- 下一篇: UC,手机浏览器可以支持Apple wa