Discuz!X/database DB:: function operation method

jacklove
Release: 2023-03-27 09:56:02
Original
4416 people have browsed it

This article explains the database operation function db.

DB::table($tablename)获取正确带前缀的表名,转换数据库句柄,
DB::delete($tablename, 条件,条数限制)删除表中的数据
DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作
DB::update($tablename, 数据(数组)条件)更新操作
DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先。
DB::fetch_first($sql)取查询的第一条数据fetch
DB::fetch_all($sql)查询并fetch
DB::result_first($sql)查询结果集的第一个字段值
DB::query($sql)普通查询
DB::num_rows(查询后的资源)获得记录集总条数
DB::_execute(命令,参数)执行mysql类的命令
DB::limit(n,n)返回限制字串
DB::field(字段名, $pid) 返回条件,如果为数组则返回 in 条件
DB::order(别名, 方法)排序
Copy after login

Note: All data needs to be processed by addslashes() before being inserted into the database to avoid errors when special characters are inserted into the database without escaping. All variables obtained through GET, POST, and FILE in Discuz! have been escaped using addslashes() by default and do not need to be repeated. If data processing is necessary (e.g. for direct display), it can be restored using stripslashes(), but the data must be escaped again before being inserted into the database. In cache files, addcslashes($string, ''\') is generally used to escape the value of cached data.

The most common query database example:

Get a single piece of data:

$rs = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE uid=1");
Copy after login

What is obtained here is the data of the user with UID 1, but there is also a getuserbyuid in discuz. Get user data

Get multiple pieces of data:

$rs = DB::fetch_all("SELECT * FROM " .DB::table('common_member')." WHERE uid in(1,2,3,4,5,6)");
Copy after login

What you get here is the information of the user whose UID is 1 2 3 4 5 6

Insert data explanation

Calling method: DB::insert()

Description: Regarding whether or not. As long as the value is 1, it means yes, if not, just ignore it or leave it blank

Example:

First, there is a table named pre_test

The table has the following fields: id ( Incrementing) Ignore the name uid field type

if(DB::insert('test',array('id'=>NULL,'name'=>'me','uid'=>1))) showmessage("数据插入成功");
Copy after login

Note: The key name of the array here is the field name in the data table, and the key value is the value of the corresponding field inserted

DB::fetch_all('SELECT * FROM %t WHERE panel=%d', array($this->_table, $panel), 'uid');
DB::fetch_all('SELECT * FROM %t WHERE uid=%d ORDER BY dateline DESC', array($this->_table, $uid), 'bid') : array();
Copy after login

Note :
The % number in DZ will be used as a parameter and you need to pass it in. First of all, you can use DB::table($this->_table) instead, and for the second one, you can use actual expressions. For the third one, you can calculate the value and fill it in. In this case, there should be no problems.

This article summarizes and organizes the function operations. For more related knowledge, please pay attention to the PHP Chinese website.

Related recommendations:

ThinkPHP framework String class detailed explanation

JS basics-Math array Date

What can jQuery do?

The above is the detailed content of Discuz!X/database DB:: function operation method. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!