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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
一个简洁的多级别论坛
Oct 09 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 PHP
Laravel 5框架学习之表单验证
Apr 08 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP验证码生成原理和实现
Jan 24 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
PHP设计模式之命令模式示例详解
Dec 20 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将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
PHP加密解密类实例代码
2016/07/20 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
繁简字转换功能
2006/07/19 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jQuery.each使用详解
2015/07/07 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
python 实现归并排序算法
2012/06/05 Python
自己使用总结Python程序代码片段
2015/06/02 Python
python插入排序算法实例分析
2015/07/03 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
医学院护理专业应届生求职信
2013/11/12 职场文书
社团文化节邀请函
2014/01/10 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
教师职称自我鉴定
2014/02/12 职场文书
人资专员岗位职责
2014/04/04 职场文书
政府采购方案
2014/06/12 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
Redis数据同步之redis shake的实现方法
2022/04/21 Redis
create-react-app开发常用配置教程
2022/06/25 Javascript