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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
第十节--抽象方法和抽象类
Nov 16 PHP
真正的ZIP文件操作类(php)
Jul 21 PHP
PHPMyAdmin 快速配置方法
May 11 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php时间函数用法分析
May 28 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
laravel批量生成假数据的方法
Oct 09 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带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
vue实现登录拦截
2020/06/29 Javascript
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
django的autoreload机制实现
2020/06/03 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
国旗下演讲稿
2014/05/08 职场文书
给市场的环保建议书
2014/05/14 职场文书
新闻报道策划方案
2014/06/11 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
如何优化vue打包文件过大
2022/04/13 Vue.js