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

罗码gitluo

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索
开启左侧

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

[复制链接]
罗码男神 实名认证 官方 发表于 2020-1-20 03:02:09 来自手机 | 显示全部楼层 |阅读模式
数据表插入:5 \4 _* q* U; D" G3 ]
方法:
* _  v) B4 A4 S: x' \0 F7 ZDB::insert()
) E, d% r1 k- u% T$ t9 H3 f参数:5 S# w( ?# q+ }$ w. l, C
$table:插入数据的表
, z" P0 T+ `! L0 y0 Z+ r$data:插入的数据,字段对应值
+ }( e; a; K4 ^- F$return_insert_id:是否返回插入数据的ID
! G2 H# a& F" s$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
0 H' w/ C1 ~+ b2 V9 I+ c- V% d$silent:操作失败是否不提示' A. i0 r4 Q  Z& h# I! L
* M: A. {. T/ e! ~3 P$ n+ N6 X5 |4 W
实例
: F+ R4 a+ _- Y9 w' \DB::insert('test_db',array(
) r5 b0 {4 I) V/ x( ]6 t9 o) E'name' => 'ppc',9 }- t4 G8 C' }8 k, Z
),true,true);
" H3 \9 O( J' {7 j: r; g
; c( t+ e  D8 u  X数据表删除:. e) w* u( C+ [. ?$ D3 x0 N' P
方法:* [& k3 ~- `1 f7 q/ y' T( }
DB::delete()5 d, c2 r1 U& H: p
参数:
' q, l- k) S* C$table:删除数据的表
* m$ M- J% Y$ d2 U8 }2 s$condition:删除的条件
/ y2 e/ }" [7 a1 y, S$limit:删除满足条件的条目数; h& a# h- O! V; q) H) i
$unbufered:是否使用无缓存查询
) I! `6 O$ J+ t8 {) M3 ~, J6 ~. a& q
实例:
# p% {( G# T" O+ Q$ ^7 ADB::delete('test_db','id>2',1,true);m
) a7 b; E: s9 y3 F5 m
, Y* f; b$ D! G$ A数据表更新:
% ^' ~7 ~% e- [方法:
8 E  P) w2 J, p: zDB::update()
  o; z# d8 R% N% c0 L) |参数:! ~# D. a7 |# I* g& l$ m8 ]  N6 \
$table:更新数据的表
4 H" ?5 l# v8 K9 q* d% v! [3 x9 t$data:更新的数据,字段对应值, d. F+ `  [! D  w& p( y6 L
$condition:更新的条件
: f0 V: E" B2 N' y  M5 ~# Q4 }$unbufered:是否使用无缓存查询
5 ^$ ?( l1 U$ Z6 ~5 @% [$low_priority:是否采用无锁表更新9 \; m  A, j. v
! g( H- Q/ Y8 C( o8 ]; S, l+ v% D1 Q
数据表查询(单条):! k/ U8 p* v; ?0 Q2 X" f
方法:
% |: I+ V+ ^" a9 l: T; QDB::fetch_first()+ Y* Z6 R% a: m! p* j: s
参数:
8 B, B1 h* i- B, \* ?+ M$sql:查询数据的SQL语句: x" _  y; ?- t* w
$arg:绑定查询的参数
4 F8 P0 d- w6 F3 [$silent:查询失败是否不提示( ?8 n7 ^  d& q! ]& N
实例:# }% `/ y7 L& c
$id = $_GET['id'];
) O4 J9 e, t& v  r/ Z: l8 J/ d+ ZDB::fetch_first('select * from %t where id=%d',array(
7 m! r: W7 \- {, p3 C'test_db',$id
0 ?+ p% c' F! p! \));0 z4 d# Y( Q: K" u1 {% ?

$ n0 v" I0 H' o+ [! i) eDB::fetch_first('select * from %t where name=%s',array(2 I( h5 r9 g- e: E0 _
'test_db','ccc'
, Y0 e5 O9 C8 d3 X+ e));
9 f. @% I7 n6 a/ j4 u: F7 N" a' T% \" A1 R: j, c3 p* ^

, G; B0 Q. B# z- N) m% T4 r2 z, L0 n" ^/ w/ U
数据表查询(多条):
% P* ^' C0 ~' T# C1 t1 ]方法:
) o$ s  t  ?  t8 {DB::fetch_all()" Q7 d- Y6 x' R& U
参数:
+ L8 r% Y7 ^" ^" B1 \) m" B$sql:查询数据的SQL语句
3 N( e- i2 h$ H* s$arg:绑定查询的参数0 @& y( [, M" R% y' z8 [  m
$keyfield:一维索引的字段名称
  F3 g2 s. g* W" ~; A" v, J& N$silent:查询失败是否不提示2 c3 q# N$ t" h
实例:3 Y7 T' R1 h' g, u
DB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
1 ^' a/ h& }& [% p; @'test_db',7,10
9 O0 P$ c3 u7 Q, q  ?6 Z% H- [));3 E) O' ]& z% o" X# g) O% S
+ y4 d, z) y( H$ \7 z* f8 B! J6 [/ W$ i
DB::fetch_all('select * from %t where id IN (%n)',array(
- F1 G/ t5 J+ B. y8 v/ j'test_db',array(1,2,3,4,5)" U7 L" J; \2 @1 S/ j, `
));
6 O* b! c9 g% t
, r/ v7 H/ x: d/ B7 b1 R数据表查询(单字段) 常用于统计查询:
  H0 V& H* e$ ?$ ~: Q2 b方法:8 X$ x4 q# l! R# t0 {
DB::result_first(); |8 {, |, X( M; `1 G% Q  K
参数:
2 S- \2 s* X; j' m/ H) N2 x6 M$sql:查询数据的SQL语句( O6 ~8 ~; n2 t" a. v$ g
$arg:绑定查询的参数# G, g* D4 L: {8 B9 b6 P( j5 m
$silent:查询失败是否不提示
/ Q7 k; o. ^! v2 g$ w, o, B% x实例:! V% V) ^, ~- e7 Y% t$ V( f  y: L
DB::result_first('select name from %t where id=%d',array() u- b9 E) w: i$ }
'test_db',1
! M+ A4 {6 r4 y! u4 N));
8 v1 S, O& Y5 q) C  p, d+ c' Z8 Q! V7 J- m
DB::result_first('select max(id) from %t',array($ O6 K* {0 F2 g) f2 @$ t
'test_db'
' J! C( Z* c8 F4 R2 f));8 h' L! D0 K5 S$ N

2 Z9 _* ^7 p8 V. U1 ?" b8 R数据库自定义query( ~/ s5 y3 H/ c% f' H3 g" e2 o
方法:( E+ r: Q" v; V7 K
DB::query()
( n+ a7 Y4 W+ [- x0 C6 h, ]5 ]2 _% N参数:
1 ?7 i* y7 c1 n. d$sql:自定义SQL语句
( I* M+ W) W5 ]9 m* Q7 z; L0 y4 t$arg:需要绑定的数据2 v9 p2 w& s: z' u3 I( Q
$silent:执行SQL失败时,是否不提示
# o' _1 u; g/ r1 Z$unbufered:是否使用无缓存查询
) `6 u1 g9 W* q$ t+ q9 ~+ u$ D实例:
. ~: y9 B; o/ _) s. d$query = DB::query("select * from %t where id IN (%n)",array(% Y. g1 U2 c" N
'test_db',array(1,2,3)
/ j( y( l( K! W9 [));
+ p! u# x9 R1 \9 Xdebug($query);
, r+ e7 s6 ?5 h6 g. Q$ x* e0 v* Y; B* T7 }4 M" G, l
删除
3 g- ?. q0 l; ]4 I$ V5 _- yDB::query("delete from %t where id = %id",array(
- [& w5 H* B) I( Y* D+ @3 F'test_db',11
% d8 Y1 @+ [) t2 W1 r));
7 B$ U8 @7 x. L* a/ W/ E3 g& |* g9 k# k8 }8 n

0 t) A  ~: z9 n$ t4 N9 A' |资源集转换结果集% U/ Q& x' M: F# V! C
方法:
, _% I6 h# b) t/ e$ j+ cDB::fetch()
) G- @, }/ }! K参数:" l8 M  B' L9 H8 \! ]8 H4 J
$resourceid:数据库查询的query资源! x/ |- G6 g) O4 ?
$type:数组类型" K6 |- Z! R8 }7 B. J
实例:
) Q' J  p. S5 Y2 Y  ^" Y: \查询% {+ M- X; Y8 b0 k: }, a$ ^4 P
$query = DB::query("select * from %t where id IN (%n)",array(
- H* T. Z6 K% C4 _2 D'test_db',array(1,2,3)1 K; I6 [; Z3 A3 G
));7 P2 v5 Z8 K0 s/ _, ^" j3 C7 Q2 b7 ^
while($res = DB::fetch($query)){" h1 e3 V4 S% O. Q$ k$ o" l
   $result[] = $res;; D4 b  o7 r2 \1 V/ a
}
6 ]. }9 f$ l" _3 K4 A5 z. Rdebug($query);
8 C" R$ l8 {) m2 {1 ?, |9 _8 C' C, [/ U. o* M
单字段资源集转换结果集(一般用于查看获取统计值)
! G+ ?' l. X1 j! x; i方法:
4 s$ N8 X: \" {- d# _) c6 p/ nDB::result(). p$ |6 r0 _* K! c8 m) T
参数:
2 d- L0 h; b' c$resourceid:数据库查询的query资源
6 H9 ^+ K' w! m" J2 @$row:指定行的第一个字段4 b" ]9 c5 a) ^; D6 f& n+ R. u6 h8 S
实例:
' t& V5 u, G# j5 y) R' U$query =  DB::query("select count(*) from %t where id < %id order by id",array(
( U' B' x# D1 g( @'test_db',10
1 A8 Z2 W! f" T! h- e));5 [9 [+ m+ |3 r
$data = DB::result($query,1);& ~4 F( {% T2 _6 R
. @+ c0 S: N! B% |" E5 _
常用实例:4 d2 G7 c# I, T) w
$query = DB::query("select count(*) from %t where id > %d",array(
# o  t+ V! X% K3 D$ p'test_db',7
8 R; F0 P4 Q- J) d7 X));
0 F$ J0 n- S  l# L$data = DB::result($query,0);6 @4 x& T2 C" J) ^4 ~( Y1 W; R; P) M
echo $data;# D: b- r0 S  i) [/ L6 z5 Q2 S
& q1 I3 N2 S& {) f- W- ?
资源集行数计算(不适合统计太多的资源,速度慢)
5 {* i; I, J) a# x0 Y方法:
' Y6 M( I( d/ k& R' ?+ l4 U7 x, \; EDB::num_rows()
; _! H# M6 ]: C8 ?! x参数:
+ N' k; C) b5 t& O  S) m$resourceid:数据库查询的query资源3 F' T+ X& b7 C
实例:
& t6 r) j6 ^8 {6 m! G6 }" I$query = DB::query("select * from %t where id > %d",array(
2 b. G/ m3 i% B8 c9 g'test_db',78 A+ A  i* |( H! R; P
));+ i1 X! [8 \4 `7 _; c' g
$data = DB::num_rows($query);# G; E) J( M6 P. x6 U
echo $data;5 y, \3 p4 k6 U/ _" B

+ i* ]$ y* E# V资源集资源释放8 W3 L( h! v" e, _) ~$ J
方法:8 w- }* N, i0 G) V$ g6 N- w
DB::free_result()# X) r) H5 q3 `0 i" n4 w
参数:4 q4 Y! v& Z2 t6 h- h6 R6 H
$query:执行SQL语句的query资源
6 Z4 y) s+ f- r- X; {$query = DB::query("select count(*) from %t where id > %d",array(
# K  R9 [( f& z4 R4 C( i% R'test_db',7
7 z3 {1 p. `2 S  n));7 |, r+ `1 h/ y4 ?3 q
$data = DB::result($query,0);6 D' x) d* E; i- q+ l9 {+ a
DB::free_result($query);
! o, d/ K" r' \1 C( j8 lecho $data;
# ~1 L8 ]! {2 G. `4 l; L6 M
2 o- B5 O! K0 k, @) J9 `: ?按字段排序; X. X7 q" q) ^  `: W+ M& [5 o
方法:
: b3 k0 f8 }& ^* b* {' vDB:rder()
4 @2 f3 d" b% T& }6 i4 w$ f' a参数:$ T; c0 ]2 R  z
$field:需要排序的字段3 Y$ D( S9 }  ^! v; c
$order:排序方式
  G* h) k. X- s& `实例:
, _) ?  `3 O! ~* h$query = DB::query("select * from %t where id > %d order by".DB:rder('id','desc'),array(4 g. I% L0 K0 i% F( E
'test_db',7# e, r; x* z6 \& {6 o
));
6 I8 D7 h% j! ~- t3 Z# s4 h4 I$data = DB::result($query,0);1 a' `) H& @7 m, ~3 \3 s
DB::free_result($query);
* q  W) a5 i8 K! I- Jecho $data;/ `% p# ^& |0 T: m7 d8 {/ @1 e
$ c0 J$ p  e# V7 l" O$ m) l$ i0 [5 D( A
取值区间设定
+ i+ D% f. \# q方法:
- |8 r6 I! n/ @1 \DB::query(). z& i: r2 b' X$ W' ?  ?
参数:
4 _) A: `4 x  d3 ]6 X$ O7 [; E: J$start:开始的索引值5 [. O7 t) F5 T
$limit:条目数, E5 V" r5 P; E& `
$query = DB::query("select * from %t where id > %d order by".DB:rder('id').DB::limit(0,3),array(" u; ~* h! Z( ~7 G# @( D' M
'test_db',78 b6 w9 X% z5 O/ P
));
  H( m, G4 z3 ^+ i) ?  o6 x. e0 Q9 z# H  ~4 I
字段拼接7 @1 \, L8 q+ U9 [/ B
方法:
! e- e1 v9 \* N: L- }0 U( p9 PDB::implode()2 u' W+ w- ^5 k3 y
参数:; H4 O, M9 T8 T$ C
$array:需要拼接的字段数组
, ~, i& y$ x% D+ c0 D: ~, ]" _- I5 I$glue:字段拼接的字符串
( i5 h' k3 R& I2 `  H, i- Q实例:9 X2 I8 ^3 d: N
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and');
6 x8 B4 d( ?1 U/ O
; l# d+ g8 l2 _. ~! c5 n6 C3 W/ ~: j* K应用:; r% ~& Q* |- I/ g6 n! Z
DB::query("update %t set".DB::implode(array(4 a/ U1 Y6 M! T3 u
'name' => 'ddd',
* Z/ j0 z  n; L2 p) x'id' => 22, P$ }: g( f1 P% b
)).'where id=%d',array(
  ]' e: H9 Y1 L  Z4 w'test_db',  u, h& p: I3 N2 f; `) i# s! C
10,% {& f! d: P1 x
)0 ~* c) V! c( `+ Z2 V
);
4 I; g  @* l" A% ]" e: o. k$ k6 h" N# d9 _
字段数据设定
; Q  x% n6 o4 p3 y& H, R方法:+ N. S" X1 `" g1 c  j1 I; ?  o4 c
DB::field()
8 ^7 R- R7 T7 D3 i9 `) o& c* c( t参数:" H$ W3 O- O% C
$field:需要排序的字段
" ?7 }0 H. o# P8 Z2 a$val:字段对应的值0 \" Z  N% V. W6 H
$glue:连接字段与值的类型
8 @0 d. J" z; k, M1 r# v- }: J实例:
; Y1 e* k3 t( O8 wDB::field('id', 99, '=');
7 u4 ^' o0 E* d; x- Y
0 ?6 U8 @! [! f2 @+ Q应用(把3改成99):% c, R- g5 q" U+ X) A
DB::query("update %t set ".DB::field('id', '99', =)." where id=%d",array(
' {/ K( y/ U4 f8 uarray('test_db', 3);% e7 H5 U3 q' n) k
));
. k# O- y7 ^( \( @

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

Powered by 罗码网络! X3.4

© 2001-2017

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