本文实例讲述了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程序设计有所帮助。