本文实例讲述了Thinkphp 框架扩展之数据库驱动常用方法。分享给大家供大家参考,具体如下:

数据库驱动

默认的数据库驱动位于Think\Db\Driver命名空间下面,驱动类必须继承Think\Db类,每个数据库驱动必须要实现的接口方法包括(具体参数可以参考现有的数据库驱动类库):

驱动方法 方法说明 架构方法 __construct($config='') 数据库连接方法 connect($config='',$linkNum=0,$force=false) 释放查询方法 free() 查询操作方法 query($str) 执行操作方法 execute($str) 开启事务方法 startTrans() 事务提交方法 commit() 事务回滚方法 rollback() 获取查询数据方法 getAll() 获取字段信息方法 getFields($tableName) 获取数据库的表 getTables($dbName='') 关闭数据库方法 close() 获取错误信息方法 error() SQL安全过滤方法 escapeString($str)

数据库的CURD接口方法(通常这些方法无需重新定义)

方法 说明 写入 insert($data,$options=array(),$replace=false) 更新 update($data,$options) 删除 delete($options=array()) 查询 select($options=array())

介于不同数据库的查询方法存在区别,所以经常需要对查询的语句进行重新定义,这就需要修改针对查询的selectSql属性。该属性定义了当前数据库驱动的查询表达式,默认的定义是:

'SELECT%DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%%LIMIT% %UNION%'

驱动可以更改或者删除个别查询定义,或者更改某个替换字符串的解析方法,这些方法包括:

方法名 说明 对应 parseTable 数据库表名解析 %TABLE% parseWhere 数据库查询条件解析 %WHERE% parseLimit 数据库查询Limit解析 %LIMIT% parseJoin 数据库JOIN查询解析 %JOIN% parseOrder 数据库查询排序解析 %ORDER% parseGroup 数据库group查询解析 %GROUP% parseHaving 数据库having解析 %HAVING% parseDistinct 数据库distinct解析 %DISTINCT% parseUnion 数据库union解析 %UNION% parseField 数据库字段解析 %FIELD%

驱动的其他方法根据自身驱动需要和特性进行添加,例如,有些数据库的特殊性,需要覆盖父类Db类中的解析和过滤方法,包括:

方法名 说明 parseKey 数据库字段名解析 parseValue 数据库字段值解析 parseSet 数据库set分析 parseLock 数据库锁机制

定义了驱动扩展后,需要使用的时候,设置相应的数据库类型即可:

'DB_TYPE'=>'odbc', // 数据库类型配置不区分大小写

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!