罗码网络discuz插件模板教程微信小程序安卓电脑软件htmlphp源码下载

罗码gitluo

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索
开启左侧

[DZ教程] Discuz X!二次开发或插件开发数据库操作语句集合

[复制链接]
罗码男神 实名认证 官方 发表于 2020-1-20 03:02:09 来自手机 | 显示全部楼层 |阅读模式
数据表插入:: V; ?( g3 C+ j8 d& R
方法:
- x- l: E! T! ]DB::insert(), |1 z, X8 Y- V8 G
参数:- Z7 i( h5 B" f2 G
$table:插入数据的表. y0 V) W6 {( q0 u& \& G8 f; g
$data:插入的数据,字段对应值
6 X% A/ t8 F% Q' g% J0 D$return_insert_id:是否返回插入数据的ID
+ a" J3 S7 M5 i# z7 U" l$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
3 E$ G; U! c7 [! V7 {# E# B1 g$silent:操作失败是否不提示
+ U% z5 S" |1 ^+ O$ F. a" X4 r* C" @) u; D
实例( H2 a' g; F6 h0 U2 s  n3 Z
DB::insert('test_db',array(- j' E3 t6 `- y7 D3 n  \; d: T$ Y
'name' => 'ppc',  w3 b+ c" k0 M+ a) I
),true,true);
- j/ ?/ g5 B0 t
! R2 o) m: A/ T' T4 m% I数据表删除:" v  l* p+ \; d! s7 g
方法:. r; J- O' `& t! X9 w. W) j3 h
DB::delete()
4 c5 q( s2 v. P7 G$ V参数:
+ C& L( ~8 U  N/ C5 C5 Y7 @% O. j$table:删除数据的表
1 d# \7 b4 R% h$condition:删除的条件$ ^( b0 z0 q8 h/ X% }) U2 K: Q
$limit:删除满足条件的条目数  [8 T* G' L6 E- j
$unbufered:是否使用无缓存查询/ x; ~0 z8 T2 t2 h! }

6 J5 F- g9 l& r8 f& {; c7 @实例:
# t! J! }0 u) z+ `8 G: l5 W2 rDB::delete('test_db','id>2',1,true);m# Y+ c7 u* F4 f

$ e9 g5 A8 D6 J数据表更新:3 s. L# B6 O- b; T/ j
方法:# R! R% p( h! |' Z9 h
DB::update()& |: U* ^. E/ ~  J$ P/ O; l: J$ [, G
参数:# b8 P9 E- i0 x) U
$table:更新数据的表: [! V; D* S$ c# s
$data:更新的数据,字段对应值
6 n% T! L( J+ ?8 E0 X: K! |$condition:更新的条件
* I% u& m6 d- M7 P+ |: N3 M! M$unbufered:是否使用无缓存查询
7 I. V& }! x0 m/ t, P" ~7 {7 X$low_priority:是否采用无锁表更新
- {  L" v% Z0 x* O8 L) t$ g
3 d5 ]4 ~5 ~" t+ T9 o2 x, J数据表查询(单条):0 A, k: S* Y, h$ w! Q9 l, O
方法:
% u2 H3 G/ Z# fDB::fetch_first(); m8 J/ K" o4 g2 O0 t: b
参数:$ @0 _8 T/ U4 P, }
$sql:查询数据的SQL语句# e6 k, H+ ^- s! U6 K6 J) ?- R
$arg:绑定查询的参数
, Q0 e4 D1 |( r) ^" m6 E. b0 N$silent:查询失败是否不提示
9 S. Q* M, Q0 ]; e6 `# j实例:1 i  i; ?2 y' j4 [7 m3 v3 N& v
$id = $_GET['id'];
. B$ G6 @9 |& R& V! |DB::fetch_first('select * from %t where id=%d',array(
/ ]3 c: @8 W& \7 f8 Y" V$ ^'test_db',$id
* r0 G* Q+ o: z2 Q5 f4 T));
; v4 f7 K+ }* j0 V% n) G1 a1 P) ]$ n  b8 z, n. J# d1 X
DB::fetch_first('select * from %t where name=%s',array(' M: [( W$ A1 F
'test_db','ccc'$ _, z5 B1 K3 o! V1 \0 L: O7 Q
));
1 r( x- R  X# E8 m: ?$ d, L2 a+ I' `& h! \, c' G) Q1 }
5 k% h7 j8 t! `6 i; k
: ]5 M+ D& ~/ d# H0 P
数据表查询(多条):+ V0 i* d3 x* _5 Q5 m: C# H  R
方法:
& g1 T6 \% p! b% u9 L. K* CDB::fetch_all()0 k7 h5 C% ]/ n  ^; w  {3 x( f' t
参数:
  i3 h$ E2 t7 r$ M6 Y8 g$sql:查询数据的SQL语句. D  X, u& T: P# O! w
$arg:绑定查询的参数( |7 i- U. `" z+ B3 X+ n, e% k
$keyfield:一维索引的字段名称
+ D  X  _* j" `$silent:查询失败是否不提示6 e; E/ T2 U+ v+ r# Q! E
实例:
9 @( ^  ?8 ^, g/ RDB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
% H- }! A8 c' J8 w) P/ B'test_db',7,100 S: H  V' x: z/ T* E. r& J1 n
));
. t, A% A; G8 A8 O* s1 V
' V+ y, W+ {% x4 mDB::fetch_all('select * from %t where id IN (%n)',array(
9 L; C" Y0 V) z'test_db',array(1,2,3,4,5)4 ?* U- T3 \& w" [( A
));/ a) Z$ {2 v- k+ k, v' A& N5 X
6 c6 z& V$ X9 T0 b, S. R0 ^2 Y
数据表查询(单字段) 常用于统计查询:/ H0 e. L' B) O+ H) `) f3 s& V
方法:
( L8 `& D6 v* j6 P  {- ~' |DB::result_first()( R" @* n% T* H4 N4 J' t+ }5 c# e
参数:
. D& _) G5 c! D8 i% y2 m* }$sql:查询数据的SQL语句7 h( {0 K2 G/ r/ h) U! \: f9 x( K" m
$arg:绑定查询的参数$ G4 ]; N- `2 R2 j/ j
$silent:查询失败是否不提示9 o9 s0 N* ], N7 I
实例:, ?8 [1 r, g+ y) {0 h4 O
DB::result_first('select name from %t where id=%d',array(0 k% O/ A  G& }7 E8 I1 G* B
'test_db',1
9 i+ d' S$ b) `9 z% L));
  r5 b: ~$ o! b- w, T. H7 S6 e  t4 c" h. a/ `; `
DB::result_first('select max(id) from %t',array(
" q: u/ Y3 V) e7 Y+ G'test_db', Z* _  F9 y- z; x# i; i, T
));
: L8 |# R' u8 R$ @" K- |$ \: h  z0 j2 i9 }9 m% @" P; x$ }. Y
数据库自定义query* M9 i/ G  E& W0 c' Z; X
方法:# ~9 G3 l, W3 Q
DB::query()
9 O2 z7 B0 N* m/ i% d& s参数:. o. Q. N4 @$ h% ?% f3 g
$sql:自定义SQL语句
$ c( ?# m: O6 F3 r& Q( U( B$arg:需要绑定的数据
: j$ h7 k; g" F4 f# ?  A7 G$silent:执行SQL失败时,是否不提示
/ J) |6 L$ G+ M) D$unbufered:是否使用无缓存查询
2 S& g3 V- ~( q+ s实例:
: U9 u$ p( M+ Y$query = DB::query("select * from %t where id IN (%n)",array(
' F" q8 n5 Y" A'test_db',array(1,2,3)
2 m0 q  ?( l, Y0 ?; D) D));
9 {/ D- C, }3 Hdebug($query);
" L8 e/ J6 i2 {: M4 K- V7 `1 ^. Q- |/ }' U
删除* r$ C! f9 h: `6 @: O
DB::query("delete from %t where id = %id",array(
" ^6 W" D5 r. D4 Y0 p'test_db',11* y4 U$ Z2 \6 P% G/ [
));8 O) R$ H7 T9 ]  z" V

3 I/ j( v9 y, m* ]; K! P# Y& |+ \
& g& s+ q1 y* D" ^0 ]8 f! y资源集转换结果集
+ i, ?, w# V! P9 @方法:
0 N6 C+ `* Z: iDB::fetch()$ S# D, n4 X2 S) F
参数:3 w; ~) t1 [+ R# ?9 N5 `
$resourceid:数据库查询的query资源) s' K( u/ ~" k+ J6 R
$type:数组类型
6 F% H' s9 P, Y0 h! Z实例:, e. H; ?. k0 q8 [
查询+ s4 }  A! E% _' y/ w" J
$query = DB::query("select * from %t where id IN (%n)",array(/ G, C9 y$ F" `  g& }9 V, [0 ]
'test_db',array(1,2,3)- Q8 K0 b% S, e" X1 M, D& m
));
5 V2 z3 a) s) p4 E8 o# G; Qwhile($res = DB::fetch($query)){
# l# s0 B6 N0 u; O9 l+ ]   $result[] = $res;  M; o0 ?6 Y$ x' U
}
4 ]) Z* l0 k! Z1 Hdebug($query);
7 g, H: ]6 {; r9 o0 D( Z6 L: H0 u& C" b% c& ^
单字段资源集转换结果集(一般用于查看获取统计值)# Q8 d+ l. a6 f) Z9 Z
方法:
$ V7 r0 m* d) }- F: I) E, q6 QDB::result()
( V, s& C5 A/ O; |6 M( f3 C! W6 q6 ?参数:/ i0 ^7 ]" G. p* T9 Y
$resourceid:数据库查询的query资源
) N9 o7 Q* k8 q, O: P4 @! j$row:指定行的第一个字段: E, w6 R% y$ S* u6 X
实例:8 d: q3 F1 |  d- F* c3 L0 {
$query =  DB::query("select count(*) from %t where id < %id order by id",array(
' V, l; Q5 ], v- N'test_db',10# o- a# d' o6 B- A" c* B* X
));
; f. ?; Y! v2 C1 U0 h# F$data = DB::result($query,1);" M4 _. {' g' @5 c4 g- P9 S+ p
; e. b( R2 u7 |
常用实例:& F1 z7 R* A5 Y5 }% s/ }7 l
$query = DB::query("select count(*) from %t where id > %d",array(2 m. e! i" Y! F6 ]' s9 G
'test_db',7
- ^' n" [7 k; c3 U- F));2 |7 ~+ p% o; r# S* t0 ~& {
$data = DB::result($query,0);2 X7 n6 Z0 _# f
echo $data;
" Z6 L3 U: m( C8 X: ^' F
& P7 x8 z& b9 o7 e8 q9 B! T资源集行数计算(不适合统计太多的资源,速度慢)
) s) ?/ s- C4 l  T方法:
; j: _+ i( V9 U5 [. oDB::num_rows()
- l! G& T' d- r; O" K1 B. D" X参数:1 T' q) u0 P. p. [
$resourceid:数据库查询的query资源% g- e, D8 b! V% T9 B4 G' ?' U
实例:
4 g3 a4 ~) C$ \' n. T# j$query = DB::query("select * from %t where id > %d",array(
, m7 K( \0 w# ?" Q& f'test_db',7
& y4 O2 k% P6 z8 m2 R));
. d$ V0 q2 k8 [, ?$data = DB::num_rows($query);
# Z- C+ K! a6 \  G- {echo $data;1 [8 o% m# l# |% ?' `1 b
$ i  X  |8 Q) w: q. A
资源集资源释放
. @$ V7 R. d' E7 G方法:! ?' {' E: d" Y4 q# t/ m) H5 Y
DB::free_result()
* e# l& p8 ]8 H" \  H3 ]参数:
, |0 I& c, u9 H2 H, k$query:执行SQL语句的query资源  R% L5 u5 j( r" [2 |  t
$query = DB::query("select count(*) from %t where id > %d",array(
0 Z0 j% T. k+ i, P$ e'test_db',7
: t/ ^4 ]3 j/ _  `  ?4 D' U));
( ~" W, ^; B3 l/ ~$data = DB::result($query,0);; ^$ n+ Y' n7 z' Y& j
DB::free_result($query);
8 l* r- j2 e/ n8 i7 s3 Techo $data;3 c) x4 C$ V2 D4 O4 t2 F

% I% Q  y' p# X2 o按字段排序1 o4 i8 H+ n" b# [- _; v
方法:
  l: s* ]( a) c# A5 BDB:rder()9 X7 @+ w& `, J* g: j
参数:6 M5 w" p6 D- R7 v& A1 y0 U9 c
$field:需要排序的字段
! L6 k) ]  R( ]" t; i; t; H$order:排序方式
, j6 Q0 o. q- o; i实例:0 A3 E4 Y8 X& W9 o. Z
$query = DB::query("select * from %t where id > %d order by".DB:rder('id','desc'),array(
* V! h, U7 b3 o) f: O6 w* {'test_db',7- z& G. }. l9 C2 |/ O
));
. [2 |. l: }5 R# f! r* Z$data = DB::result($query,0);
: `1 o( ?# ^- `! R/ |DB::free_result($query);
' {9 z3 H2 c/ o8 x5 Xecho $data;3 d1 e. B3 O7 B, M& R: p# a

0 ?+ X0 U4 d. x; v: g取值区间设定
# u+ w3 ^3 ], h! V& }. c) S  r/ v5 W方法:
5 i  D: z' J8 P( g4 PDB::query()" s( H! ~  ]. E; |2 K
参数:, R4 ]- |$ N+ F+ i  k
$start:开始的索引值
. P5 t! d- {( z/ D6 h/ A- K$limit:条目数% r: M& _# F6 `% a2 W
$query = DB::query("select * from %t where id > %d order by".DB:rder('id').DB::limit(0,3),array(
$ \+ Z# c( G% d; `'test_db',7
$ k+ e' e! L0 h6 l, y5 H* U$ I));
. L/ r- l) D4 t6 M2 Z3 ^
6 `( y$ K& H' O1 R# {. c/ {8 B字段拼接' }& c6 u! C5 Z- ]0 O) o
方法:7 n1 f& q5 D% P! U5 w1 K
DB::implode()
# e! z" z4 \' ]+ @参数:# W' s& H: N) \8 o1 J
$array:需要拼接的字段数组
) I: W9 ^$ i; {4 U$glue:字段拼接的字符串9 x4 P! Y+ r( C8 R2 r' T
实例:+ P# }6 A" @' A! W1 x6 R( a. K
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and');
3 c6 y7 u+ ^8 u
+ B& L! q6 e' P2 v应用:
, d/ X/ z) u* a) b; n4 a5 rDB::query("update %t set".DB::implode(array(* a% A8 d$ v* I3 t6 R1 G
'name' => 'ddd',
9 J+ h* P5 D( t& x2 x5 |'id' => 223 ]+ b6 F! A3 d' ?- R
)).'where id=%d',array(
- w. j; ?% f% ]" `& Z8 t'test_db',
1 V* j9 N) x( Q10,( \! O$ A3 V4 N. ^+ ~- m
): s6 s0 O' s- I! X' A5 ^3 r( Y
);# W$ z7 Q7 [' N' F# q2 A3 `6 a

' e* d5 R& r+ Y' H- _1 L' P* g8 m: i字段数据设定- a! O# Y9 ^) ]; |6 d
方法:# o9 ?1 E8 J2 j2 |- C
DB::field()7 Z% o# G7 C$ {: l  C
参数:
5 X& E0 F8 C( _8 N: Y5 q$field:需要排序的字段0 l0 x8 F1 {) i$ B' n
$val:字段对应的值
1 K' m  U* m: H- Y+ a8 u( {$glue:连接字段与值的类型: D: I' O) Q6 j6 c/ [
实例:
' T4 C$ t2 G" J7 u7 I3 CDB::field('id', 99, '=');% C4 Y' e7 _6 R2 a0 T. O
( Y% O9 J) k' \; l* ?1 ~1 G0 j
应用(把3改成99):
# f  O! p. c! {$ I& H' h6 R% b" uDB::query("update %t set ".DB::field('id', '99', =)." where id=%d",array(+ h- x4 h2 F# e7 T! v" ?) h* O
array('test_db', 3);, p& w, y% K2 @( K
));
- V/ P, U; t5 @1 s8 @0 Q% b

想说又不敢说,说了又怕被拒绝,拒绝了又怕尴尬,就是这样的。内心很痛苦的那种。
江山狂念 发表于 2020-1-21 00:36:58 | 显示全部楼层
路过,学习下

回复

使用道具 举报

张红霞 发表于 2020-1-21 04:50:36 | 显示全部楼层
好好 学习了 确实不错

回复

使用道具 举报

bogewl 发表于 2020-1-21 05:08:25 | 显示全部楼层
谢谢楼主,共同发展

回复

使用道具 举报

1287252690 发表于 2020-1-21 16:06:29 | 显示全部楼层
帮帮顶顶!!

回复

使用道具 举报

123男神 发表于 2020-1-22 02:27:59 | 显示全部楼层
帮帮顶顶!!

回复

使用道具 举报

岁月神偷 发表于 2020-1-22 03:04:33 | 显示全部楼层
路过,支持一下啦

回复

使用道具 举报

666男神 发表于 2020-1-22 03:20:40 | 显示全部楼层
有竞争才有进步嘛

回复

使用道具 举报

 shu1332725 发表于 2020-1-22 15:30:59 | 显示全部楼层
写的真的很不错

回复

使用道具 举报

373044885 发表于 2020-1-23 04:40:42 | 显示全部楼层
我抢、我抢、我抢沙发~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则

QQ|Archiver|手机版|小黑屋|罗码 ( 粤ICP备17073043号 )https://beian.miit.gov.cn/#/home

GMT+8, 2026-4-15 10:29 , Processed in 0.150415 second(s), 57 queries .

Powered by 罗码网络! X3.4

© 2001-2017

快速回复 返回顶部 返回列表