discuz mysql类_Discuz X2二次开发之数据库操作 DB类
Discuz X2的数据库操作类主要包括以下几个:
DB::result_first 返回SQL查询的唯一字段的唯一值,查询结果是字符
DB::fetch_first 返回SQL查询的多个字段的值,查询结果是一个数组
DB::query 执行SQL查询,包括两种,一种是执行update,delete这些修改数据库的操作,还有一种与DB::fetch配合做一个循环查询
DB::fetch 与DB::query和while配合使用,形成一个循环
查询数据表的表写法:".DB::table('除扩展名外的数据表名')." ,说实话这种写法非常浪费时间
首先来说下DB::result_first的用法:
此方法可以作为DB::fetch_first的精简写法,可以一步得到查询结果,例如:
$num = DB::result_first("SELECT count(*) FROM ".DB::table('forum_thread')." WHERE displayorder >=0");
查询结果$num为论坛正常主题的总数
例子:
$subject = DB::result_first("SELECT subject FROM ".DB::table('forum_thread')." where tid= 10000");
$subject = DB::result_first("SELECT subject FROM ".DB::table('forum_thread')." WHERE displayorder >=0 order by dateline desc");
第一个查询结果是tid为10000的主题的标题,第二个查询结果是最新一个论坛主题的标题
DB::fetch_first的用法
例子:
$userinfo = DB::result_first("SELECT username,email FROM ".DB::table('common_member')." WHERE uid=1");
查询结果$userinfo是一个数组
$userinfo[username] uid为1的用户的用户名
$userinfo[email] uid为1的用户的email
DB::query的用法
DB::query分为两种:
1、 修改数据库
DB::query("update ".DB::table('forum_thread')." set views=views+1 where tid = 10000");
此查询的结果是把tid为10000的主题的浏览数增加1
DB::query("delete from ".DB::table('forum_thread')." where tid = 10000");
此查询的结果是删除tid为10000的主题
DB::query("insert into ".DB::table('common_tag')." (tagname,status) values ('标签名称','0')");
此查询的结果是在标签主表里面增加一个标签“标签名称”,关于插入数据库的高级用法会在下面的节里面介绍
2、与DB::fetch配合做循环查询
例子:
$query = DB::query("SELECT tid,subject FROM ".DB::table('forum_thread')." WHERE displayorder >=0 order by dateline desc limit 10");
while($thread = DB::fetch($query)) {
echo ''.$thread[subject].'
' }
帮助
查询结果为最新的10个主题的加帖子链接的帖子标题换行显示
注意:老版Discuz只有fetch_array,没有fetch,新版Discuz X2只有fetch,没有fetch_array,搞不清楚官方为什么要换写法,实则作用不大。
Discuz X2查询数据库并分页的程序写法和模板写法
$num = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_thread')." where dateline > $_G[timestamp] - 86400 * 30 and displayorder >=0");
2
3$page = intval($_G['gp_page']);
4
5$perpage = 20; //每页显示数量
6
7$page = max(1, intval($page));
8
9$start_limit = ($page - 1) * $perpage;
10
11$theurl = "plus_new.php?action=list"; //分页的链接前缀
12
13$multi = multi($num, $perpage, $page, $theurl);
14
15$threadlist = array();
16
17$query = DB::query("SELECT tid,subject,dateline FROM ".DB::table('forum_thread')." where dateline > $_G[timestamp] - 86400 * 30 and displayorder >=0 order by dateline desc LIMIT $start_limit, $perpage ");
18
19while($thread = DB::fetch($query)) {
20
21$thread['dateline'] = dgmdate($thread['dateline']);
22
23$threadlist[] = $thread;
24
25}
26
27include_once template("diy:plus/plus_new"); //调用模板 需要在template\default 目录下新建plus目录并新建一个plus_new.htm文件
模板写法
28
29
30
31$thread[subject]
32
33$thread[dateline]
34
35
36
37
38
39暂无帖子
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
discuz mysql类_Discuz X2二次开发之数据库操作 DB类相关推荐
- discuz mysql类_Discuz论坛教程之数据库操作DB类和C::t类介绍
Discuz论坛教程之数据库操作DB类和C::t类介绍 类定义文件 DB类: 文件\source\class\class_core.php [php]view plaincopy classDB ex ...
- 新酷卡 mysql接口_新酷卡M池二次开发模块数据库操作版
有大神发了一个soket方式的,尝试继承到模块后发现soket不太适合放到易模块类内, 客户组件不支持放在类内,必须放在界面上,传入赋值类内客户变量,收到数据事件也没办法放在类内,放弃 远程服务支持库 ...
- 二次开发mysql数据反推_Discuz二次开发之数据库操作
一.discuz数据操作之查: 1.fetch_all DB::fetch_all(sql, $arg = array());//取出符合条件的所有数据 sql为查询语句,$arg为绑定参数 例:$r ...
- VSTO Office二次开发PPTRibbonX命令操作及对象添加
VSTO Office二次开发PPTRibbonX命令操作及对象添加 本篇分享对于Power Point中一些命令的操作和对于一些比较常用对象.特殊对象的添加功能. 对于Power Point命令操作 ...
- C#进行MapX二次开发之图层操作
特别说明,本文整理自一篇网络的文章<MapX从数据库读取数据形成新图层(C#)> 在C#中实现MapX从数据库读取数据形成新图层分为两个问题: 1. MapX从数据库读取数据形成新图层: ...
- 基于C#的AutoCAD二次开发之块操作
基于C#的AutoCAD二次开发之块操作 什么是块? 块由多个在逻辑上相关的图形对象所定义的整体. 块的优点有哪些 统一作业标准.提高作业效率 压缩图形文件 便于修改和维护 块的分类 块的分类 简单块 ...
- thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)
为了方便操作Mysql数据库, 封装类似thinkphp连贯操作数据库的Db类<?php header("Content-Type:text/html;charset=utf-8&qu ...
- revit二次开发之数据库的使用
一.背景 小伙伴们在revit二次开发时,可能会需要与数据库做交互,那么如何实现呢? 二.思路 笔者为此录制了一个教学视频,通俗易懂,大家直接看就行了 地址:https://www.bilibili. ...
- python操作微信小程序云端数据库_微信小程序云开发之数据库操作
本文实例为大家分享了微信小程序云开发之数据库操作的具体代码,供大家参考,具体内容如下 新建集合 1.打开云开发控制台,数据库 2.添加集合users 添加代码 onAdd: function () { ...
最新文章
- 在ASP.NET MVC中进行排序
- html5 video css样式修改,htmlvideo标签用法
- 未来大数据的处理和发展的五个趋势
- 第十章 Internet
- display函数怎么使用_使用网络构建复杂布局超实用的技巧,赶紧收藏吧
- 在Ubuntu上安装Keras深度学习框架
- 编译性语言、解释性语言和脚本语言
- 【MATLAB】卡尔曼滤波器的原理及仿真(初学者专用)
- rendering omni shadow in one pass.
- 大规模针对iOS设备的恶意广告活动劫持3亿次浏览器会话
- Bootstrap FileInput.js + springmvc uploadFile
- 三相逆变器仿真matlab,在MATLAB中实现三相电压逆变器仿真
- 求两个数的最小公倍数c语言程序,用C语言求两个数的最大公约数和最小公倍数...
- java 子网掩码 位数_java实现子网掩码转换为网络标识位 | 学步园
- php转换透明ico,php在线生成ico文件的代码_PHP教程
- 【网络安全】信息收集 CDN绕过方法
- 【推荐系统】Criteo数据集介绍
- LXR和 SourceInsight
- 计算机主机模型安装顺序,【新手必备】CAD2021最新电脑配置要求附安装步骤详解...
- 大型连锁药店管理系统源码