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 相关文章推荐
编译问题
Oct 09 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php中{}大括号是什么意思
Dec 01 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP XML Expat解析器知识点总结
Feb 15 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
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
js调用flash的效果代码
2008/04/26 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
vue实现拖拽效果
2019/12/23 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
python异步Web框架sanic的实现
2020/04/27 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
为什么要有struct关键字
2012/05/08 面试题
家长会学生家长演讲稿
2013/12/29 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
美容院考勤制度
2014/01/30 职场文书
文体活动总结范文
2014/05/05 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers