
2014-06-26 | &→∏ε↓nbsp; 發布者:梁國(guó)✘ 芳 | ↔" 查看(kàn):3320次
Thinkphp默認的(de)數(shù)據庫驅動位于Think\Db\Driver命名空(kōng)間(jiān)下(xià)面,驅動類必須¶<繼承Think\Db類,每個(gè)數(shù)據庫驅動必須要(yào)實現(xiàn)的(d±♦δπe)接口方法包括(具體(tǐ)參數(shù)可(k♠×ě)以參考現(xiàn)有(yǒu)的(de)數(shù)據庫驅動≤≈類庫):
| 驅動方法 | 方法說(shuō)明(míng) |
|---|---|
| 架構方法 | __construct($config='') |
| 數(shù)據庫連接方法 | connect($config='',$linkNum=×≠0,$force=false) |
| 釋放(fàng)查詢方法 | free() |
| 查詢操作(zuò)方法 | query($str) |
| 執行(xíng)操作(zuò)方法 | execute($str) |
| 開(kāi)啓事(shì)務方法 | startTrans() |
| 事(shì)務提交方法 | commit() |
| 事(shì)務回滾方法 | rollback() |
| 獲取查詢數(shù)據方法 | getAll() |
| 獲取字段信息方法 | getFields($tableName) |
| 獲取數(shù)據庫的(de)表 | getTables($dbName='') |
| 關閉數(shù)據庫方法 | close() |
| 獲取錯(cuò)誤信息方法 | error() |
| SQL安全過濾方法 | escapeString($str) |
數(shù)據庫的(de)CURD接口方法(通(tōng)常≤¶£這(zhè)些(xiē)方法無需重新定義)
| 方法 | 說(shuō)明(míng) |
|---|---|
| 寫入 | insert($data,$options=a↕₹'rray(),$replace=false)↔© |
| 更新 | update($data,$options) |
| 删除 | delete($options=array()) |
| 查詢 | select($options=array()) |
介于不(bù)同數(shù)據庫的(de)"♠₽查詢方法存在區(qū)别,所以經常需要(yào)對(duì)¶→£α查詢的(de)語句進行(xíng)重新定義,這φλ×™(zhè)就(jiù)需要(yào)修改針對(duì)查詢的(de)♥☆↕™selectSql屬性。該屬性定義了(le)當前數(shù)據庫驅動的(de)查詢表達式,默認的λ(de)定義是(shì):
'SELECT%DISTINCT% %FIELD% £¶"FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAλ∑♣VING%%ORDER%%LIMIT% %union%'"&
驅動可(kě)以更改或者删除個(gè)别查詢定義,或者™σ¶更改某個(gè)替換字符串的(de)解析方法,這(zhè)些≈(xiē)方法包括:
| 方法名 | 說(shuō)明(míng) | 對(duì)應 |
|---|---|---|
| parseTable | 數(shù)據庫表名解析 | %TABLE% |
| parseWhere | 數(shù)據庫查詢條件(jiàn)解析 | %WHERE% |
| parseLimit | 數(shù)據庫查詢Limit解析 | %LIMIT% |
| parseJoin | 數(shù)據庫JOIN查詢解析 | %JOIN% |
| parseOrder | 數(shù)據庫查詢排序解析 | %ORDER% |
| parseGroup | 數(shù)據庫group查詢解析 | %GROUP% |
| parseHaving | 數(shù)據庫having解析 | %HAVING% |
| parseDistinct | 數(shù)據庫distinct解析 | %DISTINCT% |
| parseunion | 數(shù)據庫union解析 | %union% |
| parseField | 數(shù)據庫字段解析 | %FIELD% |
驅動的(de)其他(tā)方法根據自(zì)身(shēn)驅動需要(€←φyào)和(hé)特性進行(xíng)添加,例≈γλ≈如(rú),有(yǒu)些(xiē)數(shù)據庫的(de)特殊性,需要₩>(yào)覆蓋父類Db類中的(de)解析和(hé)過¶®濾方法,包括:
| 方法名 | 說(shuō)明(míng) |
|---|---|
| parseKey | 數(shù)據庫字段名解析 |
| parseValue | 數(shù)據庫字段值解析 |
| parseSet | 數(shù)據庫set分(fēn)析 |
| parseLock | 數(shù)據庫鎖機(jī)制(zhì) |
定義了(le)驅動擴展後,需要(yào)使用(yòng)的φβ&§(de)時(shí)候,設置相(xiàng)應的(de)數(shù≤♦•)據庫類型即可(kě):
'DB_TYPE'=>'odbc', // 數(shù)據庫類型配置不(bù)區(qū)分(fēn)大(dà)小(₩•$xiǎo)寫
