二次开发mysql数据反推_Discuz二次开发之数据库操作

二次开发mysql数据反推_Discuz二次开发之数据库操作一、discuz数据操作之查:1、fetch_allDB::fetch_all(sql,$arg=array());//取出符合条件的所有数据sql为查询语句,$arg为绑定参数例:$result=DB::fetch_all(‘SELECT*FROM%t’,array(‘table_name’));$result为二维数组2、fetch_firstDB::fetch_first(s…

大家好,又见面了,我是你们的朋友全栈君。

一、discuz数据操作之查:

1、fetch_all

DB::fetch_all(sql, $arg = array());//取出符合条件的所有数据

sql为查询语句,$arg为绑定参数

例:$result = DB::fetch_all(‘SELECT * FROM %t’,array(‘table_name’));

$result为二维数组

2、fetch_first

DB::fetch_first(sql, $arg = array());//取出符合条件的第一条数据

例:$result = DB::fetch_first(‘SELECT * FROM %t ‘, array(‘table_name’));

$result为一维数组

二、discuz数据操作之增:

DB::insert(参数一,参数二,参数三);

/*

参数一:table_name

参数二:以对应数据表中的字段为key,具体数值为value组成的关联数组

参数三:是否返回该数据的id。true则返回具体id,false则不会返回id

*/

例:DB::insert(‘table_name’,[‘name’=>’张三’,’age’=>’18’,’sex’=>’男’],true);

三、discuz数据操作之改:

DB::update(参数一,参数二,参数三);

/*

参数一:table_name

参数二:以对应数据表中的字段为key,具体数值为value组成的关联数组

参数三:修改的where条件

*/

例:DB::update(‘table_name’,[‘name’=>’张三’,’age’=>’19’,’sex’=>’男’],’ id = 1 ‘);

四、discuz数据操作之删:

DB::delete(参数一,参数二);

/*

参数一:table_name

参数二:删除的where条件

*/

例:$sql = ‘id = ‘.$id;

DB::delete(‘table_name’,$sql);

以上是discuz的基本数据库操作。但实际开发中会对数据操作进行再封装,实际暴露的借口是用C::t()方法来进行数据操作

具体操作在source/class/table文件夹内创建一个文件

文件名为table_表名(注:是去掉表前缀的名字),例如:数据库中表名为pre_forum_post,那么该文件的名字为table_forum_post.php

例:

table_forum_design_list.php<?php /**

* [Discuz!] (C)2001-2099 Comsenz Inc.

* This is NOT a freeware, use is subject to license terms

*

* $Id: table_forum_access.php 27777 2012-02-14 07:07:26Z zhengqingpeng $*/

if(!defined(‘IN_DISCUZ’)) {exit(‘Access Denied’);

}class table_forum_design_list extendsdiscuz_table

{public function__construct() {$this->_table = ‘forum_design_list’;$this->_pk = ”;

parent::__construct();

}public functionget_all() {return DB::fetch_all(‘SELECT * FROM %t WHERE st != 0’, array($this->_table));

}public function insert($data)

{return DB::insert($this->_table,$data,true);

}public function delete($id)

{$sql = ‘id = ‘.$id;return DB::delete($this->_table,$sql);

}

}?>

//外部文件调用方式

$result = C::t(‘forum_design_list’)->get_all();$result = C::t(‘forum_design_list’)->insert($data);$result = C::t(‘forum_design_list’)->delete(1);

根据上面代码所见,所有的直接操作数据库的操作都会写在表对应的class文件里。

补充一点,如何执行原生sql语句。

DB::query(sql,$arg = array());

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nmap 命令[通俗易懂]

    Nmap 命令[通俗易懂]Nmap命令探测主机信息一、扫描指定IP所开放的端口输入命令:nmap-sS-p-1-65535-v192.168.1.106表示用半开扫描,扫描指定端口为1到65535,并且显示扫描过程Nmap常用扫描参数及说明参数 说明-sT TCPconnect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息-sS 半开扫描,很少有系统能够把它记入系统日志。不过,需要root权限-sF-sN 秘密FIN数据包扫描,XmasTree、Null扫描模式-sP pin

    2022年5月28日
    47
  • 令人心动的WEB HOSTING 虚拟主机服务[通俗易懂]

    令人心动的WEB HOSTING 虚拟主机服务[通俗易懂]你正在为网站寻找虚拟主机(WEBHOSTING)吗?哪里能找到功能卓越,价格低廉的ISP服务商呢?跟着我,你便会找到惊喜.一个偶然的机会使我有机会访问到国外的网站服务公司HostExcellence. ,它的服务套餐有以下几种LinuxHostingPlans:StarterPlan-1Domain&50mb/$2.95InstantPlan-1Domain&

    2022年10月8日
    3
  • 激活码2021。3【在线注册码/序列号/破解码】

    激活码2021。3【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    90
  • java运算中的取余

    java运算中的取余java中的取模(取余)在java运算中有时会出现对一个整数取模(取余)操作,首先复习一下小学学过的除法公式:除数÷被除数=商如果没有被整数就会出现余数,例:10÷3=3余数为1在java运算中,取余符号是%1、第一种情况一个大的整数对一个比它小的整数取余publicstaticvoidmain(String[]args){in…

    2022年6月1日
    138
  • VMM分类_nmm组合

    VMM分类_nmm组合VMM可以分为:完全虚拟化(基于硬件)、宿主虚拟化、混合虚拟化 (1).完全虚拟化VMM虚拟的是现实存在的平台,在客户及操作系统看来,虚拟的平台和现实的平台是一样的,客户机操作系统察觉不到市运行在一个虚拟平台上X86架构的完全虚拟化,经历了两个阶段:软件辅助的完全虚拟化Ringcompression   VMM运行在Ring0,客户及操作系统运行在V

    2022年9月22日
    5
  • 怎样背英语单词才高效?有哪些好方法?(如何高效的背英语单词)

    原文地址:https://www.zhihu.com/question/19580414何宜晖CSundergrad,CV,DL,ML单词视频下载方式:微盘http://vdisk.weibo.com/lc/T7ktJoSaPlIlVW0a8密码:X3J8直接下载压缩包http://yihui-he.github.io/TOEFL-10000-0/(通过github,速度可能比较慢…

    2022年4月15日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号