Thinkphp 框架扩展之数据库驱动常用方法小结


Posted in PHP onApril 23, 2020

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

PHP 相关文章推荐
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
php数组的一些常见操作汇总
Jul 17 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
php中使用接口实现工厂设计模式的代码
Jun 17 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php中array_column函数简单实现方法
Jul 11 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 #PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 #PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 #PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 #PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 #PHP
php模拟实现斗地主发牌
Apr 22 #PHP
PHP实现随机发扑克牌
Apr 22 #PHP
You might like
关于svn冲突的解决方法
2013/06/21 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
修改发贴的编辑功能
2007/03/07 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
工业设计专业个人求职信范文
2013/12/28 职场文书
应届生如何写自荐信
2014/01/05 职场文书
开学典礼感言
2014/02/16 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
营销与策划专业求职信
2014/06/20 职场文书
春节慰问信范文
2015/02/15 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
公司开业主持词
2015/07/02 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript