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

罗码gitluo

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索
开启左侧

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

[复制链接]
罗码男神 实名认证 官方 发表于 2020-1-20 03:02:09 来自手机 | 显示全部楼层 |阅读模式
数据表插入:
/ F' J  K6 _, ^2 V" X5 a! X方法:
" m; d) r9 N4 Z2 a7 bDB::insert(), w0 z, R  w2 e5 E% p6 A! [' A7 d
参数:
; h% Q* E0 q/ Q" e  V$table:插入数据的表3 L, ]& k" k; ?7 X4 B% I) o
$data:插入的数据,字段对应值; U# p9 \. L  W* r! _, _7 W# r+ @
$return_insert_id:是否返回插入数据的ID* Z7 T  [: W5 c$ ?5 e
$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
$ b+ Q) f& A0 C1 ^' x- q$silent:操作失败是否不提示( i, e$ v- Y, S: v

; M9 I; S+ E" o) W$ r# Z* \) p实例/ {- @9 U# D* q5 X/ J7 d
DB::insert('test_db',array(
. D; R8 I; T, x) X'name' => 'ppc',
, w0 z" H8 A; z) q4 d0 u" n' o; t),true,true);) X4 r1 `, c' m' l
% {& {8 x- C+ P, R
数据表删除:
7 q& ?5 q3 S. s0 w" [& q1 j  A方法:' n5 Y* S5 @9 z# e! z% @" C
DB::delete()
+ h" k$ v5 W. N' n9 F参数:
/ K4 C  X2 n( ]* j3 l2 I$table:删除数据的表8 z# T# \( _' S- j9 L6 z
$condition:删除的条件  ~& b  d2 H7 n& Z4 R- ~
$limit:删除满足条件的条目数& u( e4 i! T' @. h! n9 ~2 v% I
$unbufered:是否使用无缓存查询# m7 Z: ?/ j0 u

4 n4 E; W* y* t0 M" {0 M) V: ~实例:( _, {' B+ m7 V$ J" ^. ?0 X
DB::delete('test_db','id>2',1,true);m
" m+ A0 P6 ?4 k: j: q: E. B- d
: p" j0 ]( q8 L8 P/ j- Y& Y数据表更新:. `& f. I* r5 Q8 U, j/ A/ P
方法:
5 H4 k' N/ y( t. k& ~( ^DB::update()% _) H, w8 ^3 X0 e0 V& h$ y# T3 ]
参数:
0 h. B7 x& M! ?( h! b  U6 {" {) l$table:更新数据的表2 p- W# o( N+ {+ A" v
$data:更新的数据,字段对应值
, y2 z' j- u( ~0 B' s  z, O$condition:更新的条件
0 S/ g& {5 s' c- K4 x: Z$unbufered:是否使用无缓存查询
! J2 {. L3 }3 A3 x5 ?- O5 j& Y, O9 q$low_priority:是否采用无锁表更新
$ X' g- K) f( j- a3 ?+ c: z5 l( w  w. E
数据表查询(单条):( S" O% a" G8 H7 R5 O+ e
方法:' P% Z0 h/ ^' A  ?' h: B* {  {
DB::fetch_first()
+ O% D8 ~* ~, u+ n' o  ]参数:
% {1 d' H) A0 k& Z& K# M$sql:查询数据的SQL语句8 [% R- }7 x/ [( {
$arg:绑定查询的参数
6 x8 w- U) s7 u$ I6 X1 c; a( Z$silent:查询失败是否不提示- N# O& b; N3 q% S/ p7 T) e8 R: s
实例:
' }1 i5 v/ a. j6 e* ~; q3 D$id = $_GET['id'];
1 T6 C% q8 y0 mDB::fetch_first('select * from %t where id=%d',array($ j) Q% V5 Y0 v# f
'test_db',$id  \% A: }- @2 c3 k6 t1 ^
));8 Z, p6 x0 M, ^1 M/ e

4 ^* x( ^& I8 i9 r5 U4 @  TDB::fetch_first('select * from %t where name=%s',array(8 \: }3 G. ?5 [0 w8 C
'test_db','ccc'
) ^5 ]* ?, D3 Z));" F* r, ?' R8 ^) c0 L
9 \6 h6 Q/ k( a; y) T
' [. D$ G; U& }% @
% J; `. C, W4 }3 R; X" ]
数据表查询(多条):4 W6 ?0 z+ t+ b2 n* t. v5 X
方法:
5 V1 m! T) I4 `; J9 ?DB::fetch_all()5 T7 K+ z) |" a' W' I7 [$ K
参数:
( C2 I3 R  q# x5 N1 B$sql:查询数据的SQL语句
! Y( p2 Q% E. F  s3 D& I. p3 B$arg:绑定查询的参数+ T; ^7 D6 `% X
$keyfield:一维索引的字段名称
) o/ O' W0 X& ~# y# u$silent:查询失败是否不提示0 w7 S: V4 V" l6 `7 p5 k
实例:
, ~' Z+ Y3 d9 O) PDB::fetch_all('select * from %t where id >= %d AND id<=%d',array(' h/ x" l& m, C6 A0 E' r  R5 k; M
'test_db',7,107 _* o8 C( @8 u8 Z; \6 }9 I) |" \
));& \- |" F* @! J8 h& a# p
+ r! g: B2 H  d
DB::fetch_all('select * from %t where id IN (%n)',array(
2 f% _0 G. L* S+ H; _* a'test_db',array(1,2,3,4,5)/ t+ \/ o# H# @2 E; o$ u
));
9 H/ `5 `2 A9 L7 z
" e5 d% V1 t6 p! y- i6 H# g% x数据表查询(单字段) 常用于统计查询:0 E; G7 N% ?2 c$ z) e" w( [( k7 X
方法:! l5 u" c3 Y0 l4 Q+ A. H
DB::result_first()) G( ?3 V0 j1 C" U3 p
参数:
  ^6 X+ Z- Q: r$sql:查询数据的SQL语句
7 A: \$ ~+ r( Y& w2 ^9 A2 j! k$arg:绑定查询的参数
, g( p# s) N0 I* @* N7 t$silent:查询失败是否不提示
+ y' k$ ~. h; K实例:
6 `& M; f- j6 J6 a( V0 IDB::result_first('select name from %t where id=%d',array(
  n) t( O& L, R; G. ~5 c  V'test_db',1% _7 s' h9 t8 p/ V% ~
));0 ^; j7 `5 H. W' S! k

0 f- K/ @' W8 UDB::result_first('select max(id) from %t',array(  o* `1 }1 M, L* A2 |1 m! [/ Q- t
'test_db'9 j; T+ w) ?- X, e* ^! ?- i, ^8 a
));
7 ]" y5 P# Z; d
/ F4 B) P+ M' Y; c; h数据库自定义query
% g1 o3 q! @) v: j- E! B5 B+ W方法:$ o) O2 I. ?- L1 Z/ w, A6 u
DB::query()8 \4 M6 z# @9 p6 J4 W0 q1 U$ k$ Z
参数:' G; u9 z& r; R% C0 C- O# x
$sql:自定义SQL语句
& u# _. W" @( H5 {' Q7 F, U' e5 ~, _$arg:需要绑定的数据
9 P1 N# E' h! m! g4 |9 s$silent:执行SQL失败时,是否不提示* G5 p2 n# g7 M" H6 @4 X
$unbufered:是否使用无缓存查询
! z! V2 M5 N7 ?实例:) R( P# t2 q1 t4 r1 ]; T9 p1 @8 h
$query = DB::query("select * from %t where id IN (%n)",array(5 b' {6 `1 f# D. ?6 n  V3 h% W) R
'test_db',array(1,2,3). v; ~9 c1 p3 J8 d+ }" Q
));
5 U9 c( W# B+ k% H3 ]; e' bdebug($query);
3 ?3 x9 M) ?: z7 G- u/ h( a4 A1 T% l
删除
, k7 F' [4 B& y* L. ODB::query("delete from %t where id = %id",array(7 G8 c  X, f- R: c5 [2 Q
'test_db',11
9 ^: ^- I3 V' s) }7 k! A  o));  e' ~  i! [( g% S; z1 l( S" v8 I
. ]2 `, b* b9 @
1 B" A, `0 W+ e! l: p* M" {
资源集转换结果集
7 C4 J. u6 L) n( p方法:
6 f& w' ^; e; D! S$ h  nDB::fetch()
/ V9 h0 h2 f. D1 I+ T, }, l$ W参数:* q) R. x0 y, D9 s
$resourceid:数据库查询的query资源# W1 u/ Q7 d2 Y( K9 @) G- B
$type:数组类型
+ U+ W- q8 U  O- h实例:
5 I* a* a# l+ E1 [查询/ A3 n( P7 g4 Y- {6 D9 w
$query = DB::query("select * from %t where id IN (%n)",array(8 ]+ X% [) y1 p$ Q! t
'test_db',array(1,2,3)
8 w& A8 j& ?, U" n2 x# a7 o2 N6 R));9 A& p* g6 P7 n" i8 [% C$ [
while($res = DB::fetch($query)){2 H6 }& v5 @" w" Q
   $result[] = $res;
, A0 E- R" z+ a3 I3 L: x}
7 r9 S: o6 R4 P% H2 _0 F3 Ydebug($query);, d' W9 X' D9 N, v2 m7 }
3 Y4 o) K$ @. Y8 K5 u5 e/ Z5 O
单字段资源集转换结果集(一般用于查看获取统计值)
8 F& o* W+ Y( r方法:
4 g1 W* g7 B% O) n7 P8 UDB::result()& D/ Z) s6 H& K* j
参数:8 K# f5 o. q5 p  k! M
$resourceid:数据库查询的query资源
/ p$ ~- M  q7 O( q  ?* I$row:指定行的第一个字段' U$ W7 B- A  Z7 U
实例:
% j8 d" X2 N0 J2 }! U# B% ?$query =  DB::query("select count(*) from %t where id < %id order by id",array(' a& u2 w6 _" U5 o
'test_db',10
7 R/ Z2 M8 j+ l* X- F5 u- D));, [2 y0 k0 [' H6 a" p$ f) {3 A) d
$data = DB::result($query,1);
2 w. ?. p. `, s
4 y7 e; u6 C( Y+ _7 Q常用实例:& g7 }3 F! }# F7 \6 Q+ X
$query = DB::query("select count(*) from %t where id > %d",array(( d2 d- q/ D7 w6 h
'test_db',7+ U4 c" b4 j, r9 P( E& t
));
0 Y- a- F4 J4 [$ D3 E- s& {$data = DB::result($query,0);
9 G9 r2 w* f" E; s3 g* }echo $data;+ W) N4 x. _  D6 S. V4 J+ C
4 o. L" H( T0 C; F( g
资源集行数计算(不适合统计太多的资源,速度慢)
# k) E2 a: C% P- O方法:6 g( c  d) [7 w: a& q% _1 M
DB::num_rows()
: r/ l% u9 B7 t% B参数:
9 F: h% |( u* x  D6 Z6 u: Z  ]$resourceid:数据库查询的query资源
) d  G0 d; o$ j' P实例:
" s: u$ T/ h; R3 V$query = DB::query("select * from %t where id > %d",array(
# K, _8 Z/ o4 y1 u2 n'test_db',7: d* b+ |! Z. A# S( {6 y: O' G2 q
));
4 t3 P0 ?9 Q" ~2 W! e( p6 L$ @$data = DB::num_rows($query);( ]$ @: I* n, |0 y* t/ s; G
echo $data;
5 H2 b# M( B1 r, e
7 L" D; u4 o1 a5 M资源集资源释放
& g- M8 p% @& v9 k7 C2 }) `方法:8 G# E* J$ V7 B4 W0 f
DB::free_result()
6 z1 ]4 R" f* {! q8 F& z参数:
' j; A+ Z4 f2 R5 B$query:执行SQL语句的query资源
. f" s* l, w# M1 t$query = DB::query("select count(*) from %t where id > %d",array(4 ?( D' d8 I7 Y: F) p! _) {7 a
'test_db',7; L' @+ @  c& g+ V
));) T' u. J* d/ u& R
$data = DB::result($query,0);
% @: Q2 F" }9 q9 A( e5 |DB::free_result($query);
: r9 x  Y5 F" H+ L$ f% Y/ Xecho $data;
- W9 r! \3 R' |3 \" [' t( [- \0 H# X  ]
按字段排序
7 ?% Q" c. U* o, @* s2 E2 {6 q方法:6 `/ ?2 {2 C- p! ]  [7 |
DB:rder()
) d" K/ y+ {& ?  J7 v; p# L参数:
7 r4 T4 g' u' k. B2 r" b/ j7 ~$field:需要排序的字段
/ O/ m# X( ?  n( U$order:排序方式
" m; S$ `0 B* r% B实例:
% q" i8 {% Y6 u$query = DB::query("select * from %t where id > %d order by".DB:rder('id','desc'),array(& f" V! e$ S* u( H# R  n( ^) ]& v
'test_db',78 y! f  k( W* p! i" h, k
));
- w( j; R5 A0 U2 @! H7 [$data = DB::result($query,0);- J0 C( M# y' d. E* y$ t$ i
DB::free_result($query);
- ~. B/ ]' K7 l4 Y; Decho $data;
7 _! K% \$ m8 D  d" m; f8 p
' @* b. Q# m8 T0 p, w% c% U取值区间设定' m! O% Z- v5 `- H* p! v+ {+ s  B
方法:
0 x, X$ O9 V3 SDB::query()8 g; |- Y+ x1 L
参数:
, n2 C8 y7 p* M7 L) k4 a$start:开始的索引值7 K" M7 ?$ K3 Q+ G
$limit:条目数8 n0 o8 ^7 X. Z. L* v( M$ D
$query = DB::query("select * from %t where id > %d order by".DB:rder('id').DB::limit(0,3),array(
+ B: S5 N; G: w'test_db',72 s/ r( i; z7 |
));3 a6 M& h5 m8 p2 N, C' x$ t: Y

; j5 B7 O! L4 X9 C! O字段拼接9 Z3 x) R/ t: v7 y2 x2 Y/ O& ^
方法:9 v  j/ n9 g/ g7 k8 |; ^; W2 p
DB::implode()
/ m. q: c4 f9 m) X参数:
# |7 Y) p* r8 v; ?! @" U$array:需要拼接的字段数组7 J1 W1 q' D* t7 Y2 M
$glue:字段拼接的字符串0 P+ v# C& k  }+ P( O- c  t
实例:9 e4 y: u! M4 k. f
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and');
- }& e# `0 G2 I5 o! |/ k2 t+ {) c: r6 Q. i
应用:! b& W( l0 s& H; U/ ~) z, C! u
DB::query("update %t set".DB::implode(array(: o/ I2 N6 s) }! ?& Y4 ^
'name' => 'ddd',4 U/ s1 z" \: H! m
'id' => 225 V* _( z' |* e% N. i" W
)).'where id=%d',array(
* K) k% k" t4 D7 \'test_db',) j3 I' p8 e# L0 V+ Y
10,
0 G9 K- U% v& O), Y. q; p' s8 h; f7 O; ]
);/ O, E( n5 J9 D' ^" x" @

5 M# q$ |2 S9 g% m! a% Z5 E字段数据设定# D$ y% V8 [, K& w/ S! n
方法:
' S  ~2 F; L# r( g( ODB::field(): E; P* ]/ v! p1 D; j( D
参数:
" g- O0 `2 d' s, @9 p. H' O' N$field:需要排序的字段
: r& z& |) O) a, A( [$val:字段对应的值# D9 T* S* Q& w* `2 z9 Y" \
$glue:连接字段与值的类型2 ?8 R. h& }) [5 s! p: h
实例:1 R. I% c5 W# H" S
DB::field('id', 99, '=');
5 X' x, ^3 k: A8 v0 A; k% t, A
2 g8 v$ t/ X! z应用(把3改成99):! \8 Q/ ]1 p# {- d, p4 m# e
DB::query("update %t set ".DB::field('id', '99', =)." where id=%d",array(: K0 q" ~0 h" {8 e6 l, ]
array('test_db', 3);
+ o' w7 G1 k9 {0 A));
8 v- ^1 j; ]7 H; i* o; X! l& C8 q

想说又不敢说,说了又怕被拒绝,拒绝了又怕尴尬,就是这样的。内心很痛苦的那种。
江山狂念 发表于 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 | 显示全部楼层
有竞争才有进步嘛

回复

使用道具 举报

杨晨女神 发表于 2020-1-22 11:03:44 | 显示全部楼层
路过,学习下

回复

使用道具 举报

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

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 17:15 , Processed in 0.120631 second(s), 57 queries .

Powered by 罗码网络! X3.4

© 2001-2017

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