类定义文件
DB类:
文件\source\class\class_core.php

class DB extends discuz_database {} 

discuz_database类定义

文件\source\class\discuz\discuz_database.php

DB类封装常用方法:

DB::table($table) //获取带前缀的表名

DB::delete($table, $condition, $limit = 0, $unbuffered = true) //删除数据

DB::insert($table, $data, $return_insert_id = false, $replace = false, $silent = false) //插入数据

DB::update($table, $data, $condition, $unbuffered = false, $low_priority = false)//更新

DB::insert_id()//返回插件的自增长id

DB::fetch_first($sql, $arg = array(), $silent = false) //取查询的第一条数据fetch

DB::fetch_all($sql, $arg = array(), $keyfield = '', $silent=false) //查询并fetch

DB::result_first($sql, $arg = array(), $silent = false)//查询结果集的第一个字段值

DB::query($sql, $arg = array(), $silent = false, $unbuffered = false) //普通查询 一条sql语句

DB::limit($start, $limit = 0) //limit条件

DB::order($field, $order = 'ASC')//返回排序

DB::field($field, $val, $glue = '=')//返回字段条件 $val可以为数组
替换参数 功能
%t 表名,
%s 字串,如果是数组就序列化
%f 按 %F 的样式格式化字串
%d 整数
%i 不做处理
%n 若为空即为0,若为数组,就用',' 分割,否则加引号

数据库类定义在目录\source\class\table\另外从X2.5版本开始,discuz对数据库类进行了二次封装

使用方法:C::t('tablename')->method();
插件新增的表mytablename 
放置在目录:source/plugin/mypluginid/table/table_mytablename.php 
使用类名:table_mytablename 
使用用法:C::t('#mypluginid#mytablename')->method();
更多详细资料可参考Discuz!开发文档:http://faq.comsenz.com/library/plug/construct/construct_db.htm

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/lih062624/article/details/68940609

Discuz!数据库操作DB类和C::t类介绍的更多相关文章

  1. [Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类

    继续接上文: Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用 布局文件同上文一致,这里就不贴了. 一.封装DaoUtils类 User ...

  2. tp5数据库操作 Db类

    一.链接数据库 1.配置文件定义  application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...

  3. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  4. Django1.11模型类数据库操作

    django模型类数据库操作 数据库操作 添加数据 1,创建类对象,属性赋值添加 book= BookInfo(name='jack',pub_date='2010-1-1') book.save() ...

  5. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

  6. 安卓 SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  7. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  8. android中的数据库操作(转)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  9. [Android] Android 使用 Greendao 操作 db sqlite

    Android 使用 Greendao 操作 db sqlite GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发 ...

随机推荐

  1. SQLServer charindex函数, 查 某个字符 或 某个字符串 在 另一个字符串中的位置

    一:charindex()语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 解析: expression1 必需 ---要 ...

  2. 测量MySQL的表达式和函数的速度

    测量MySQL的表达式和函数的速度,可以调用benchmark()函数.语法格式是benchmark(loop_count,expr).运行的返回值是0,但是mysql会打印一行显示语句大概要执行多长 ...

  3. 轻量级Web服务器http-server

    http-server是一个简单的零配置命令行http服务器.可用于h5页面手机端测试 Vue .Angualr.React项目打包后真机测试 github地址:https://github.com/ ...

  4. Jmeter里http接口的执行顺序是顺序执行

    1,如果在一个线程组里则是顺序执行 2,如果不在一个线程组里,就勾选独立运行各个线程组,在一个运行结束后启动下一个线程组

  5. matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色

    一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...

  6. Java8 Stream流方法

    流是Java API的新成员,它允许以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).就现在来说,可以把它们看成遍历数据集的高级迭代器.此外,流还可以透明地并行处理,无需写任何多 ...

  7. 最新 物易云通java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.物易云通等10家互联网公司的校招Offer,因为某些自身原因最终选择了物易云通.6.7月主要是做系统复习.项目复盘.Leet ...

  8. Vue问题汇总

    Vue——父子组件间异步动态获取数据传递数据时,子组件获取不到值或者延时获取: 通过watch解决:https://blog.csdn.net/where_slr/article/details/99 ...

  9. jquery on绑定事件叠加解决方法

    jquery on绑定事件叠加解决方法 代码如下 <pre> $('.maoqiu').each(function () { var is_bind = $(this).attr('is_ ...

  10. 8、1 周末总结+Mongdb

    都说加一个Id 注解就行了,其实还要加一条数据测试表是否生成 这里我们探讨  数据库是谁,表是谁 数据库在mongo启动的时候就指定了,这个无需我们关心 表根据实体类自动生成, 1.pom.xml & ...