Discuz!X3.1数据库的操作

Posted alleyonline的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Discuz!X3.1数据库的操作相关的知识,希望对你有一定的参考价值。

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的余度、与应用程序彼此独立的数据集合。产品中的主题,帖子,用户,关注等等。所有数据都存储在数据库中。

官方数据字典

http://faq.comsenz.com/library/database/x3/x3_index.htm

数据库规范

http://dev.discuz.org/wiki/index.php?title=编码规范

数据表插入操作

方法名:DB::insert()

1
2
3
4
5
<?php
    DB::insert(‘test_db‘,array(
          ‘dname‘ => ‘ppc‘,
    ),true);
?>

参数解释:

$table:插入数据的表

$data:插入的数据,字段对应值

$return_insert_id:是否返回插入数据的ID

$replace:是否使用replace into

1
2
3
4
5
6
7
<?php
    //$replace 当存在数据执行修改,不存在执行写入
    DB::insert(‘test_db‘,array(
          ‘did‘ => ‘1‘,
          ‘dname‘ => ‘ppc‘,
    ),true,true);
?>

$slient:操作失败是否不提示

数据表删除操作

方法名:DB::delete()

1
2
3
<?php
    DB::delete(‘test_db‘,‘dId=4‘,1,true)
?>

参数解释:

$table:删除数据的表

$condition:删除条件

$limit:删除满足条件的目数

$unbuffered:是否使用无缓存查询

数据表更新操作

方法名:DB::update()

1
2
3
4
5
<?php
        DB::update(‘test_db‘,array(
              ‘dName‘ => ‘ppc2‘
        ),‘dId=5‘,true);
?>

插入的值如果是变量用array()

1
        DB::update(‘borle_do‘,array(‘countMoney‘ => $countMoney),array(‘doId‘=> $doId),true);}

参数解释:

$table:(更新数据的表)

$data:更新的数据,字段对应的

$condition:更新的条件

$unbuffrerd:是否使用无缓存查询

$low_priority:是否采用无损更新表

绑定查询的参数解释

表达式 数据处理
%t DB::table()
%d Intval()
%s addslashes
%n IN(1,2,3)
%f Sprintf(‘%f,%var’)
%i 不做任何处理

数据表查询操作(单条)

方法名:DB::fetch_first()

1
2
3
4
5
6
7
<?php 
       $dId 5;//可以使用$dId = ‘2admin‘,输出2,由于Intval()将指转换为2
       $data = DB::fetch_first(‘select * from %t where dId=%d‘,
               array(‘test_db‘,$dId)
       );
       print_r($data);
?>

参数解释:

$sql:查询数据的sql语句

$arg:绑定查询的参数

$silent:查询失败时是否不提示

数据表查询操作(多条)

方法名:DB::fetch_all()

1
2
3
4
5
6
7
8
<?php 
    $data = DB::fetch_all("select * from %t where dId>=%d and dId<=%d",
            array(‘test_db‘,1,9),
            ‘dId‘
    );
    
    print_r($data);
?>

通过%n进行数据查询

1
2
3
4
5
6
7
<?php 
    //%n表示array(1,2,3,4,5,6)
    $data = DB::fetch_all("select * from %t where dId in (%n)",
             array(‘test_db‘,array(1,2,3,4,5,6))
    );
    print_r($data);
?>

参数解释:

$sql:查询数据的SQL语句

$arg:绑定查询的参数

$keyfield:一维索引的字段名称

$silent:查询失败的是否不提示

数据表查询操作(单字段)

方法名:DB::result_first()

1
2
3
4
5
6
7
<?php 
    //查询dName字段id=1的数据
    $data = DB::result_first("select dName from %t where dId=%d",
             array(‘test_db‘,1)
    );
    echo $data;
?>

比较常用语统计查询

1
2
3
4
5
6
<?php 
    $data = DB::result_first("select count(*) from %t",
            array(‘test_db‘)
    );
    echo $data;
?>

取最大值id

1
2
3
4
5
6
<?php 
    $data = DB::result_first("select max(dId) from %t",
            array(‘test_db‘)
    );
    echo $data;
?>

参数解释:

$sql:查询数据的sql语句

$arg:绑定查询的参数

$silent:查询失败时是否不提示

以上是关于Discuz!X3.1数据库的操作的主要内容,如果未能解决你的问题,请参考以下文章

Discuz!X3.1数据库的操作

Discuz!X3.1后台操作技巧(整合)

Discuz! X3.1直接进入云平台列表的方法

discuz X3.1 关于分表 和 分表数据迁移

Discuz!X3.1标签使用

Discuz X3.1 论坛修改的方法(门户的修改)