找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2771|回复: 0

[分享] Discuz!数据库操作DB类和C::t类介绍

[复制链接]
发表于 2017-11-15 13:45:10 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
类定义文件
DB类:
文件\source\class\class_core.php
  1. class DB extends discuz_database {}
复制代码

discuz_database类定义
文件\source\class\discuz\discuz_database.php

DB类封装常用方法
  1. DB::table($table) //获取带前缀的表名  
  2. DB::delete($table, $condition, $limit = 0, $unbuffered = true) //删除数据  
  3. DB::insert($table, $data, $return_insert_id = false, $replace = false, $silent = false) //插入数据  
  4. DB::update($table, $data, $condition, $unbuffered = false, $low_priority = false)//更新  
  5. DB::insert_id()//返回插件的自增长id  
  6. DB::fetch_first($sql, $arg = array(), $silent = false) //取查询的第一条数据fetch  
  7. DB::fetch_all($sql, $arg = array(), $keyfield = '', $silent=false) //查询并fetch  
  8. DB::result_first($sql, $arg = array(), $silent = false)//查询结果集的第一个字段值  
  9. DB::query($sql, $arg = array(), $silent = false, $unbuffered = false) //普通查询 一条sql语句  
  10. DB::limit($start, $limit = 0) //limit条件  
  11. DB::order($field, $order = 'ASC')//返回排序  
  12. DB::field($field, $val, $glue = '=')//返回字段条件 $val可以为数组  
复制代码

另外从X2.5版本开始,discuz对数据库类进行了二次封装
数据库类定义在目录\source\class\table\
使用方法: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

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-26 10:08 , Processed in 0.040952 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表