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

 更新时间:2020年04月23日 09:37:48   作者:人生如初见_张默  
这篇文章主要介绍了Thinkphp 框架扩展之数据库驱动常用方法,总结分析了Thinkphp数据库驱动常用方法、功能及相关使用注意事项,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • 又一个PHP实现的冒泡排序算法分享

    又一个PHP实现的冒泡排序算法分享

    这篇文章主要介绍了又一个PHP实现的冒泡排序算法分享,标题中的又一个是指本站已经有好几篇冒泡排序算法的文章了,如果这个没有满足你的要求,请看相关文章里的其他实现方法吧,需要的朋友可以参考下
    2014-08-08
  • ThinkPHP内置jsonRPC的缺陷分析

    ThinkPHP内置jsonRPC的缺陷分析

    这篇文章主要介绍了ThinkPHP内置jsonRPC的缺陷,以实例形式详细分析了ThinkPHP内置jsonRPC校验的缺陷与解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • CodeIgniter连贯操作的底层原理分析

    CodeIgniter连贯操作的底层原理分析

    这篇文章主要介绍了CodeIgniter连贯操作的底层原理,结合实例形式分析了CodeIgniter中常见的php oop连贯操作实现原理,具有很大的通用性,代码简单易懂,需要的朋友可以参考下
    2016-05-05
  • ubuntu12.04使用c编写php扩展模块教程分享

    ubuntu12.04使用c编写php扩展模块教程分享

    php语言自带了很多的扩展模块,诸如mbstring、gd、pdo等等。有时为了提高效率,需要用C实现其中的一些功能,就可以自行编写php的扩展模块
    2013-12-12
  • Laravel的throttle中间件失效问题解决方法

    Laravel的throttle中间件失效问题解决方法

    这篇文章主要介绍了Laravel的throttle中间件失效问题解决方法,简单分析了throttle中间件失效问题的原因并提出了解决方案,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • PHP脚本自动识别验证码查询汽车违章

    PHP脚本自动识别验证码查询汽车违章

    经常有查下自己的车有没有违章,所以写了现在这个脚本,帮助查询自己的车是否违章。主要用到,带cookie模拟表单提交和验证码识别。具体脚本写法一起通过本文学习吧
    2016-12-12
  • Yii2创建多界面主题(Theme)的方法

    Yii2创建多界面主题(Theme)的方法

    这篇文章主要介绍了Yii2创建多界面主题(Theme)的方法,结合实例形式详细分析了Yii2创建多界面主题的步骤与相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • laravel框架中间件 except 和 only 的用法示例

    laravel框架中间件 except 和 only 的用法示例

    这篇文章主要介绍了laravel框架中间件 except 和 only 的用法,简单说明了中间件 except 和 only的功能,并结合实例形式分析了laravel框架中间件 except 和 only 相关使用技巧,需要的朋友可以参考下
    2019-07-07
  • php使用curl模拟登录后采集页面的例子

    php使用curl模拟登录后采集页面的例子

    php使用curl模拟登录后采集页面的例子,附带php curl模块的开启办法。
    2013-11-11
  • php+js实现图片的上传、裁剪、预览、提交示例

    php+js实现图片的上传、裁剪、预览、提交示例

    首先用到的语言是php、插件imgareaselect附下载地址,没有太多花哨的样式,喜欢的朋友可以学习下
    2013-08-08

最新评论