Home >Backend Development >PHP Tutorial >Discuz!X/database DB:: function operation method
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(别名, 方法)排序
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");
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)");
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("数据插入成功");
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();
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
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!