找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 22357|回复: 1

[内置扩展] DB数据库操作类说明

[复制链接]
发表于 2019-7-6 11:23:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
函数
功能
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(别名, 方法)排序

注意:由于 X1.5 里增加了SQL的安全性检测。因此,如果你的SQL语句里包含以下开头的函数 load_file,hex,substring,if,ord,char。 或者包含以下操作 intooutfile,intodumpfile,unionselect,(select')都将被拒绝执行。

替换参数
功能
%t表名,
%s字串,如果是数组就序列化
%f按 %F 的样式格式化字串
%d整数
%i不做处理
%n若为空即为0,若为数组,就用',' 分割,否则加引号
[PHP] 纯文本查看 复制代码
数据表插入:
方法:
DB::insert()
参数:
$table:插入数据的表
$data:插入的数据,字段对应值
$return_insert_id:是否返回插入数据的ID
$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
$silent:操作失败是否不提示

实例
DB::insert('test_db',array(
'name' => 'ppc',
),true,true);

数据表删除:
方法:
DB::delete()
参数:
$table:删除数据的表
$condition:删除的条件
$limit:删除满足条件的条目数
$unbufered:是否使用无缓存查询

实例:
DB::delete('test_db','id>2',1,true);m

数据表更新:
方法:
DB::update()
参数:
$table:更新数据的表
$data:更新的数据,字段对应值
$condition:更新的条件
$unbufered:是否使用无缓存查询
$low_priority:是否采用无锁表更新

数据表查询(单条):
方法:
DB::fetch_first()
参数:
$sql:查询数据的SQL语句
$arg:绑定查询的参数
$silent:查询失败是否不提示
实例:
$id = $_GET['id'];
DB::fetch_first('select * from %t where id=%d',array(
'test_db',$id
));

DB::fetch_first('select * from %t where name=%s',array(
'test_db','ccc'
));



数据表查询(多条):
方法:
DB::fetch_all()
参数:
$sql:查询数据的SQL语句
$arg:绑定查询的参数
$keyfield:一维索引的字段名称
$silent:查询失败是否不提示
实例:
DB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
'test_db',7,10
));

DB::fetch_all('select * from %t where id IN (%n)',array(
'test_db',array(1,2,3,4,5)
));

数据表查询(单字段) 常用于统计查询:
方法:
DB::result_first()
参数:
$sql:查询数据的SQL语句
$arg:绑定查询的参数
$silent:查询失败是否不提示
实例:
DB::result_first('select name from %t where id=%d',array(
'test_db',1
));

DB::result_first('select max(id) from %t',array(
'test_db'
));

数据库自定义query
方法:
DB::query()
参数:
$sql:自定义SQL语句
$arg:需要绑定的数据
$silent:执行SQL失败时,是否不提示
$unbufered:是否使用无缓存查询
实例:
$query = DB::query("select * from %t where id IN (%n)",array(
'test_db',array(1,2,3)
));
debug($query);

删除
DB::query("delete from %t where id = %id",array(
'test_db',11
));


资源集转换结果集
方法:
DB::fetch()
参数:
$resourceid:数据库查询的query资源
$type:数组类型
实例:
查询
$query = DB::query("select * from %t where id IN (%n)",array(
'test_db',array(1,2,3)
));
while($res = DB::fetch($query)){
   $result[] = $res;
}
debug($query);

单字段资源集转换结果集(一般用于查看获取统计值)
方法:
DB::result()
参数:
$resourceid:数据库查询的query资源
$row:指定行的第一个字段
实例:
$query =  DB::query("select count(*) from %t where id < %id order by id",array(
'test_db',10
));
$data = DB::result($query,1);

常用实例:
$query = DB::query("select count(*) from %t where id > %d",array(
'test_db',7
));
$data = DB::result($query,0);
echo $data;

资源集行数计算(不适合统计太多的资源,速度慢)
方法:
DB::num_rows()
参数:
$resourceid:数据库查询的query资源
实例:
$query = DB::query("select * from %t where id > %d",array(
'test_db',7
));
$data = DB::num_rows($query);
echo $data;

资源集资源释放
方法:
DB::free_result()
参数:
$query:执行SQL语句的query资源
$query = DB::query("select count(*) from %t where id > %d",array(
'test_db',7
));
$data = DB::result($query,0);
DB::free_result($query);
echo $data;

按字段排序
方法:
DB::order()
参数:
$field:需要排序的字段
$order:排序方式
实例:
$query = DB::query("select * from %t where id > %d order by".DB::order('id','desc'),array(
'test_db',7
));
$data = DB::result($query,0);
DB::free_result($query);
echo $data;

取值区间设定
方法:
DB::query()
参数:
$start:开始的索引值
$limit:条目数
$query = DB::query("select * from %t where id > %d order by".DB::order('id').DB::limit(0,3),array(
'test_db',7
));

字段拼接
方法:
DB::implode()
参数:
$array:需要拼接的字段数组
$glue:字段拼接的字符串
实例:
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and');

应用:
DB::query("update %t set".DB::implode(array(
'name' => 'ddd',
发表于 2020-12-22 18:25:30 | 显示全部楼层
好棒棒!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|新秀网络验证系统API[软著登字第13061951号] ( 豫ICP备2021033257号-1 )

GMT+8, 2026-1-21 14:17 , Processed in 0.241977 second(s), 67 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表
slot777
slot qris
atlas123
KAPAK123
MENARA123
BARONG123
VIRGO123
HORAS123
KAKEK123
ION123
PATEN123
SALAM123
TUYUL123
KUNGLO123
PINTU123
JOKI123
INTI123
JADI123
MENANGBET
JADIJP
ACEH123
TINGGIBET
SUMBER4D
PULANG4D
POLAMAXWIN
INTAN123
dingin4d
paten123
slotsultan
slot sultan