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

罗码gitluo

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索
开启左侧

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

[复制链接]
罗码男神 实名认证 官方 发表于 2020-1-20 03:02:09 来自手机 | 显示全部楼层 |阅读模式
数据表插入:
( c* B# p: W7 f9 F/ q+ J方法:
* R5 v3 T( z$ |' V$ c. H( hDB::insert()
  Q/ E/ ^3 C% S: w, a/ y" \参数:
. a4 o/ J1 @, w: Z5 K6 o$table:插入数据的表
! A$ c! ^1 L/ h* ~9 ?* O. m2 T' j$data:插入的数据,字段对应值
. r& k7 B0 V, I; C0 P$ e% C$return_insert_id:是否返回插入数据的ID
3 ?% D& U/ P9 ^& C% _' e, K$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)4 l8 S* T, B& R9 ~4 H% J
$silent:操作失败是否不提示. u% Y" e  {- F* `1 h& R

. e" a! k. k3 C$ Y& {实例
* L6 N" N: I+ n1 A* w+ b. c; RDB::insert('test_db',array(
4 P8 g5 M; _1 Y. W$ k$ ]'name' => 'ppc',
2 Z0 J2 g' q4 @5 Z9 P# ]9 ^# y),true,true);
3 J; i/ y/ k) b' e2 M: N4 J6 L! `) K4 N$ z; _6 Q
数据表删除:3 V+ t6 z- P* C, e9 I7 l4 W( a
方法:) m9 J; ~0 M1 `; D0 |) O
DB::delete()
1 l. D) Z( E: y7 N参数:- l8 g/ w1 i  ^6 f9 z
$table:删除数据的表
; G# V$ U+ j' Y+ x& Y) A$condition:删除的条件- \6 t( m" t6 p) Q4 N) p7 q3 E7 R
$limit:删除满足条件的条目数, |* `2 l1 h  v5 |- B) q% M
$unbufered:是否使用无缓存查询! ?1 a* C2 f/ ]" A: j

# @5 q5 s/ Z9 w0 J1 _0 X实例:
2 k3 g" F6 m6 D: _DB::delete('test_db','id>2',1,true);m
" X- d3 q# \& d& D' n' ?! L0 U0 `& l5 F# I6 _2 H' Q' j
数据表更新:
3 v2 {8 x6 m0 [4 D方法:
; B$ u3 U9 E, z# R. BDB::update(). }  u- X1 ^! W" C
参数:
( a/ c5 v$ W9 y, S( A6 N* k& k4 ?1 F8 A$table:更新数据的表
# y3 z: `! S8 n& n$data:更新的数据,字段对应值
; c" c/ q' x( B: ^% r: W$condition:更新的条件
# G4 V8 q/ i- ~9 }$ W% u) I$unbufered:是否使用无缓存查询
. ~2 ?5 ?; h: r% M8 @: z$low_priority:是否采用无锁表更新6 Z: j- \. u0 D3 r8 ]1 f8 p: r

% s, j+ g) c8 }1 p+ \. A) p4 `0 g数据表查询(单条):/ m: I: ^/ q7 k. {
方法:
6 A- U3 K3 G# Z1 r+ kDB::fetch_first()
$ f0 e0 N) }3 q  p- K参数:
" y1 i$ W3 I) D( V7 m* }$sql:查询数据的SQL语句" ?  U' u: Q+ u6 I8 O- O- @4 e
$arg:绑定查询的参数) q) ~, V6 e7 V% F- N; F0 h9 X
$silent:查询失败是否不提示  x' c& y* n, G0 h8 S$ m& k
实例:) G8 f" r$ N' G; i
$id = $_GET['id'];* I( `3 ~* R* g% ]) ~' B' r6 O. r
DB::fetch_first('select * from %t where id=%d',array(' J7 e/ h% r  ~2 ~: C
'test_db',$id% J& C" y9 f9 I+ V- j: }8 o* V, ~
));
# t+ z, M/ ^1 E) {& r# i0 c8 X' }+ `/ H; k1 N
DB::fetch_first('select * from %t where name=%s',array(
7 ~4 C% i% g! A5 ]' E'test_db','ccc': |$ |2 [/ ~+ k$ n' o7 _
));9 X$ G4 U! Q! {

1 e, g6 ^: v  U- e6 Z, }8 t) b. K1 Q2 H" l+ \) `

* c4 I) W' |. I; ^$ s! t# p数据表查询(多条):
# P* o8 c% d, R# k" v# s) z方法:- M+ }9 l- W: j1 x! v' m1 M
DB::fetch_all()
" Y1 p. Z0 D0 ]. k, |参数:7 i9 V4 o$ p" Q1 D
$sql:查询数据的SQL语句% S6 S/ }/ l. J- L3 O
$arg:绑定查询的参数
7 w- b+ B+ U& S" W2 G1 o$keyfield:一维索引的字段名称% h1 Z' l2 p& D9 I
$silent:查询失败是否不提示; ~# P7 P: X' a3 ^; l5 k; V
实例:' U( ^$ l! `3 k* v( ?
DB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
# i# C7 o. }5 H/ |'test_db',7,103 h* x% d. J4 V( Q
));
1 {, V7 y; F& m% H% u& A$ `' f- W7 J0 ^8 Z- v
DB::fetch_all('select * from %t where id IN (%n)',array(% O; g/ x: R- r3 v5 M
'test_db',array(1,2,3,4,5)" x3 s! q6 b" i6 ~* f& j
));2 Y2 i1 c+ g/ N$ q$ [6 y* I
% A% o+ _9 w- \, {* [8 K* _
数据表查询(单字段) 常用于统计查询:
( _( t) }3 _7 g0 F9 `9 Y7 F方法:
* ?4 l1 j5 p( ~: l. {6 kDB::result_first(): t- L5 N* v7 E3 }+ t2 j
参数:
3 Z: Q& s7 N: w$sql:查询数据的SQL语句1 v2 q$ Q2 @9 _! `+ R6 F1 y' y
$arg:绑定查询的参数  N7 ^7 X" ]* i
$silent:查询失败是否不提示, m% \2 ~% ~; Y# B* ]
实例:; c$ \, O$ h* x* @7 b9 z+ t" f
DB::result_first('select name from %t where id=%d',array(3 |& p8 @" g7 u9 U. Y
'test_db',1; {# {, V  T' m  E! N5 a, q
));
# F% G7 q3 G6 W6 s, q) ^9 S
; x* Y0 [$ `& c0 c8 W9 A! Z) }DB::result_first('select max(id) from %t',array(
4 S: K( G; Z+ v* t; R'test_db'* A2 d0 I6 \1 _' j* J3 k/ z
));0 T: `8 }2 D. [; X( o3 m
; B- j, o" g; N+ b5 F- `
数据库自定义query
1 l9 v4 E2 N5 L5 ?% j5 Q方法:
. X! J1 t  K/ A% V  sDB::query()
4 C1 y) P- d9 M, A参数:: ]: N( n8 \- m% G6 }+ F/ u
$sql:自定义SQL语句* K+ p& G: O4 Y( B" y
$arg:需要绑定的数据; X) H8 `" |; f3 Z7 c; ^
$silent:执行SQL失败时,是否不提示0 E' P, ^- c  e4 a
$unbufered:是否使用无缓存查询% z$ t2 a. p- P! w, P. {" `( {& x
实例:
, @8 H& m& A) U% K* J$query = DB::query("select * from %t where id IN (%n)",array(
) g: E( [1 f# p* T1 l'test_db',array(1,2,3)
& B. W) A7 c. n8 k+ U));8 K% e1 H  G9 F7 |% E
debug($query);' K" M9 U2 l+ w: Y! N+ G

' p4 d. ?. [/ |# @% |删除+ S* s  |- S# t
DB::query("delete from %t where id = %id",array(3 h' ^# K, ^6 }( U% A, ~
'test_db',11
& M4 Z2 f1 h; e9 k( F! S7 W+ V2 R$ B));
" |/ g  O: V$ K3 B# h: [& G  s2 B5 u5 v* l* _2 ]0 s. \( w9 O

2 I0 R/ K/ W/ u) I" [. g9 G. R资源集转换结果集: s& U! c3 s3 {+ T& }
方法:/ }! B$ E6 S; x; [& t  V3 Y
DB::fetch()$ l7 c0 x, ^5 z- x* U7 s- U
参数:
- c1 N# `# _  H- u$ R$resourceid:数据库查询的query资源
( E! y* f. F/ i* ^  w. J+ ^$type:数组类型4 E+ \9 O# K. g& q. m
实例:6 j7 W' |# @5 `8 M4 r+ C
查询" w+ c! H  t: X, _
$query = DB::query("select * from %t where id IN (%n)",array(
3 s+ H, n0 F" F8 s: ~( J! e5 o'test_db',array(1,2,3)
* k1 F$ d- h3 ]5 ~));+ a, H' i: o+ s: ]. Q
while($res = DB::fetch($query)){4 Y) y2 I  r: T0 y1 G; u
   $result[] = $res;
: F( u- }) E* n( A}9 I- [7 b& d( o( R5 U, F' D
debug($query);
1 c2 _) e. G6 n1 y1 U; h
+ Y: j& \* P( o1 H* o9 M单字段资源集转换结果集(一般用于查看获取统计值)
9 N0 I3 z3 ^8 D* q' b方法:
4 ~& p% W5 W( z9 nDB::result()" N. x3 H& i0 T2 a% B* k
参数:
9 j" ^% v4 D, _  m$resourceid:数据库查询的query资源
# T, D# L! h+ Z1 |; ^$row:指定行的第一个字段
+ `+ s  D9 {/ _9 ?5 S实例:' f, M& m$ X, W
$query =  DB::query("select count(*) from %t where id < %id order by id",array(
# |2 X, D) {& R) \'test_db',104 N) k* x9 P+ X+ h
));
, R0 ?8 Q- E7 h- s$data = DB::result($query,1);
) _: O7 Y' T0 e" A3 N( x
% B: o/ j8 x: M常用实例:
4 o$ }* P0 V3 b# M2 |; B$query = DB::query("select count(*) from %t where id > %d",array(
* a* y6 a  I9 Q) Z3 p  X0 z'test_db',7: b) |: K) n& O& Z
));! d, l% L; J  S/ f; @$ j
$data = DB::result($query,0);
# y( t, I' k% t: U$ pecho $data;: }$ j! f; }8 u4 ]% \; j# C( |
* M, ?( Q8 h  }3 {
资源集行数计算(不适合统计太多的资源,速度慢)
" n7 q8 u* }; Q+ @+ I7 k方法:
* C- ^3 Q2 t3 `" QDB::num_rows()
: J) v1 [9 S4 s; y3 b! p6 N( ?7 s参数:
; K3 h7 }$ x% D7 V: ]9 C$resourceid:数据库查询的query资源) y# {: t3 o! H. c% G7 U+ ]
实例:
* m% m* l# \0 L2 o; Y$query = DB::query("select * from %t where id > %d",array(
  `4 W1 O! y& K0 T; c'test_db',7
" [8 j. C" @- }- Q));
) B6 r. }# E1 R; R4 Y$data = DB::num_rows($query);
2 v: E& ]3 G, R* S1 V. o! mecho $data;) Q, o' M$ K. s0 M
- j* F9 K4 T$ ]- I* I* Q
资源集资源释放) H  K+ I$ d' j& V
方法:
9 _; V, `" I. Q& FDB::free_result()( U* X. Y$ @& U5 ]
参数:& V" U* y8 o0 ]0 w! ~: W* |
$query:执行SQL语句的query资源
4 t: q5 t1 B9 R3 Q0 d$query = DB::query("select count(*) from %t where id > %d",array(
# q# |4 s/ B: [5 ]; S: y( ^'test_db',7# p# g& |. V1 F; k& D
));8 O4 ?0 e' v% o' i
$data = DB::result($query,0);: C7 q* @' o* J6 J
DB::free_result($query);4 u# j6 q/ `3 o- N. W' x
echo $data;. `. S2 ]( m5 P! D9 P% J

4 ~1 r% ~5 o; v2 p( H$ J按字段排序
- u5 F9 [: W  [7 h9 i" g0 |- k4 y方法:
1 y5 R' H* A% ?, s; x1 EDB:rder()3 u* z4 k' L- r+ H
参数:& @/ w( [/ B3 U/ G6 x% f5 m
$field:需要排序的字段) F4 U. u3 `& l# p& C5 o. e
$order:排序方式
0 o! H" z/ U1 n. b实例:
: D( ]1 U" e' n7 x9 w; p, v$query = DB::query("select * from %t where id > %d order by".DB:rder('id','desc'),array(
, w3 |' Q6 z0 [" K5 ]'test_db',7
* v& I5 y& {$ C));: d- q( Q* \- I5 D+ A
$data = DB::result($query,0);) H3 `7 P9 q  Z- c
DB::free_result($query);
5 u: b1 R3 p' decho $data;
9 m3 i" D  u7 f7 U% G
- H9 b7 |9 @0 T9 }' {取值区间设定2 R7 G) Y: c" m$ l8 h9 a! w2 X
方法:
. ^+ l5 w4 o. R$ r( u5 E! c% k) x$ B" `DB::query()& q; g" v$ j. t- S; H/ O
参数:3 ?* g2 m  P8 c, }  r: [4 [! |
$start:开始的索引值
2 Y) ^* w9 g4 u$limit:条目数5 P+ l/ q$ b. B9 e5 O* E
$query = DB::query("select * from %t where id > %d order by".DB:rder('id').DB::limit(0,3),array(& c# p- H( q! [' t( N# U- b- o* b
'test_db',7
: t! Q$ b( ]! c, M& [" u));0 A& B$ `0 v; D! V9 J7 u7 x

* q% s+ V$ W, f3 k字段拼接1 i- E* n# x/ P9 V1 a- R5 C; y. U" e
方法:
+ x) }, k! G* z2 O. I' H" D- S) [" W8 EDB::implode()) a- P; G( `* m* a! y- M) c
参数:* C+ z& p! I$ J5 B" L7 u6 X9 A
$array:需要拼接的字段数组: N$ o+ H) |! J
$glue:字段拼接的字符串
* ]. k: ^4 Q# R; A& |实例:- H  ~1 G  u& v! h: d' @% K: o' W
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and');
8 O" m4 r$ D/ C! n6 E2 Q3 e$ K: @2 _$ l; z: S. s+ T/ w, k
应用:" X% J+ H8 v6 N
DB::query("update %t set".DB::implode(array(! x9 S7 f3 t8 ?( K0 x. v, a
'name' => 'ddd',
! b, G( X' d( Y'id' => 222 ?( h$ [3 ^3 R; l( l
)).'where id=%d',array(
" `! e+ j* c; A! s2 D( H'test_db',9 Q+ [+ K' {# ?1 b
10,
, ]! h# z7 x, q)
. \) ^/ U4 H" J1 s6 f7 E; R);
" M( C$ M( B8 l, L8 I( ~5 C8 {) @3 G
字段数据设定
' e3 n, O2 M8 h/ v9 w6 T2 J: H方法:
# v; W) I* X% T7 s1 }3 v7 ]DB::field()9 y7 Y8 a+ H- W, o+ |6 o! Z5 ~4 o, ?! ]
参数:4 S9 M' d9 a, O: z1 r- a
$field:需要排序的字段
4 |3 _0 Q- I7 c$val:字段对应的值1 u" ^* s7 g9 o
$glue:连接字段与值的类型( C! v5 Q8 r% m6 A
实例:
& c  l6 n7 D+ I/ L$ X% _) V4 W9 tDB::field('id', 99, '=');
$ M4 b! ?$ K5 I. Q0 f3 k* E" N* E- `0 ~
应用(把3改成99):2 s* D- f' d) \
DB::query("update %t set ".DB::field('id', '99', =)." where id=%d",array(( D7 O6 x- a# `7 @* _
array('test_db', 3);# z* Z# g& v# X6 I. j) \
));3 K7 A7 V- ]8 ?- Z

想说又不敢说,说了又怕被拒绝,拒绝了又怕尴尬,就是这样的。内心很痛苦的那种。
江山狂念 发表于 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-6-5 11:30 , Processed in 0.152471 second(s), 57 queries .

Powered by 罗码网络! X3.4

© 2001-2017

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