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之第八天
Oct 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
PHP比你想象的好得多
Nov 27 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
php常用字符函数实例小结
Dec 29 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
laravel自定义分页效果
Jul 23 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
星际争霸兵种名称对照表
2020/03/04 星际争霸
FCKeditor添加自定义按钮
2008/03/27 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
ArrayList类(增强版)
2007/04/04 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
详解如何较好的使用js
2016/12/16 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Numpy中的mask的使用
2018/07/21 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python可视化实现代码
2019/01/15 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python使用Pygame绘制时钟
2020/11/29 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
高中教师考核方案
2014/05/18 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
Django程序的优化技巧
2021/04/29 Python