 | |  |  | 数据表插入:
- H: |7 x0 {, u: h/ P L9 m方法:
# b% N8 v. P3 O5 l4 k! Z" }% C0 tDB::insert()
' V! b* g0 k1 h: G% o: c2 \参数: 3 Q2 k$ X8 `- y/ {$ F& H
$table:插入数据的表
' s7 H7 H0 ~& w( ^/ k. B$data:插入的数据,字段对应值 ! J9 A# G+ w! E) b
$return_insert_id:是否返回插入数据的ID
: F, Z9 G2 d6 a: g5 ^$replace:是否使用replace into(当原始表中存在不重复数据就插入,存在就更新)
) }# E, @9 X- v5 ^) ^# R/ U/ H$silent:操作失败是否不提示
& `; k0 h1 ^4 S4 B5 @3 Y3 ^! h' ^$ u, F* _; F2 }+ z$ V
实例
/ @2 C: v+ h- [) [DB::insert('test_db',array(
# \5 B) r6 j" f- l'name' => 'ppc', : P" h2 J, i' u- U; Z- A8 j
),true,true);
+ Y, C+ O( a1 O4 E9 E" W) k( i/ R7 q8 j
数据表删除: 2 _! Y1 N/ t' j
方法:
# L0 c" X" h- U' e* U& U) p& S" pDB::delete()
" K. `& y; `1 Y) L; V参数: 2 [$ w5 \1 ? `; D' T6 V2 v" x
$table:删除数据的表
; q1 l* D \7 h/ ^$ g) S$ J+ Z$condition:删除的条件
/ C% X6 p. M0 _! ^$ }0 }# c$limit:删除满足条件的条目数 2 P ~1 W# D2 k4 U' W) Q
$unbufered:是否使用无缓存查询
% R9 z& ?# P# i6 j1 {* E8 J' o5 d7 e/ I' u
实例:
5 l; e8 S& E5 C4 w/ fDB::delete('test_db','id>2',1,true);m ) l+ A2 }: p9 t' l1 n
/ {# ?9 u0 g/ R# W0 Y数据表更新: ' W, v4 ~& |8 M+ H
方法: & V/ G( n, \- G# H
DB::update()
* K5 f$ p& Z* s1 l4 y参数: , m2 J& |3 D$ @: t: `/ f& j1 t1 C# `
$table:更新数据的表 / D/ Z9 R7 s- o
$data:更新的数据,字段对应值 ; c* T2 P; N# o
$condition:更新的条件 o! @8 D' S- x2 m& C* L
$unbufered:是否使用无缓存查询 + C4 a1 t1 P0 `9 V
$low_priority:是否采用无锁表更新 . T" X( k# [- y6 k4 j: d3 l0 f4 [
0 V: [) V4 ^# B4 j9 K8 [数据表查询(单条):
; z; x. d4 p/ @7 x ~* }+ ?方法:
$ }9 ` X; N- ^* p# e% wDB::fetch_first()
- w/ m7 s. _) L3 Y参数:
4 i$ i D# _# S. N$sql:查询数据的SQL语句 7 S6 v/ M' ?% M3 _+ N3 y0 a3 I
$arg:绑定查询的参数
2 b. n# X- d$ K1 V) o; |/ M$silent:查询失败是否不提示
$ V% w; v& w; T/ |2 c4 x* m8 b4 G) [实例: - g0 z) Y" n! |- H6 j# |
$id = $_GET['id']; , h8 e- o! R" |/ R! n
DB::fetch_first('select * from %t where id=%d',array(
/ g' z. J3 }/ w'test_db',$id * g0 }) _1 B/ Q+ _" H" t
)); % S P! P( L6 T( h+ a
1 S$ V) w- ?) q( A& A; |2 r r
DB::fetch_first('select * from %t where name=%s',array(
- N' `$ p6 X$ t/ i'test_db','ccc' 8 p. @. d1 ?0 j) E8 m0 F6 T
));
& E3 l# k1 ?. A8 h% q3 z3 Z' q" d4 p1 W; ^
$ f2 B6 {1 Y5 o, v; a3 v5 [
. S- ^# O( ?" i1 M1 ]# ~' f数据表查询(多条):
: a( }. Y* j4 M& S3 ~- J方法:
! E- F% Y& a& Z; LDB::fetch_all() 9 \8 m# n! T7 h' L1 E! |6 K# h
参数:
0 K* X$ A; y: q( G5 K$sql:查询数据的SQL语句
8 f" ]$ E0 I( ?+ q: R$arg:绑定查询的参数
6 B/ U1 K: y/ g# u0 S' J$keyfield:一维索引的字段名称
9 V9 E3 c* x! S- }8 R$silent:查询失败是否不提示
+ g! J# ` y! `/ Z/ v& |4 Y' I- H1 t实例:
, V9 i" S) ?$ _/ W. H5 zDB::fetch_all('select * from %t where id >= %d AND id<=%d',array(
% }7 C* k9 f, Z$ J" N'test_db',7,10
8 [: c0 x9 ^8 L)); , X9 t2 q+ b0 D ^, |' v7 w7 A
5 N6 x; D' ?- A( e [3 X. bDB::fetch_all('select * from %t where id IN (%n)',array(
* U0 \0 H; |: s7 F N, m% F' e'test_db',array(1,2,3,4,5)
. [) i. x7 [! v8 K8 U$ `)); T! c. Z& n" T$ ?& P$ [
* L! o/ J6 M/ c: g$ A7 g8 r
数据表查询(单字段) 常用于统计查询:
+ n {( W, F6 z2 v" r方法:
s' a7 i; Q0 LDB::result_first()
/ t+ ^3 z# t$ Y" B. s5 u4 g参数:
6 a3 F% a9 h2 w! P( _" G/ W$sql:查询数据的SQL语句 * g& F1 ?/ z: G9 G7 C2 I
$arg:绑定查询的参数
* Q+ d* k; j4 Z0 v' u$silent:查询失败是否不提示
7 `) ]. ?6 Q6 r$ X7 Z0 x实例: ; O, P9 y" q4 W( f b
DB::result_first('select name from %t where id=%d',array( , v, H' q) c9 c9 Z: G- l0 Y( D1 v, H
'test_db',1 ' N/ W# X1 ?9 G6 j; h4 o
));
8 L7 l& O% u9 j/ j$ d, S. Q2 D+ U4 I# L$ n' X1 ?
DB::result_first('select max(id) from %t',array( 5 Z- P& N) |7 G: Y( D, W) U
'test_db' 3 F5 g( C+ o9 P
)); @) |' n" N5 I" J
9 E+ [. O P/ |4 X2 ?
数据库自定义query
: o& U# X) {6 u$ O7 s方法:
" u% R7 O! G' k! h& y+ T- M; ?: sDB::query()
- z, \: n+ e9 j* O. i6 J8 C( Z4 x参数:
, f5 x8 s. p+ G5 z- z$sql:自定义SQL语句 5 [$ p8 E: p: ~7 _6 E
$arg:需要绑定的数据
/ F* t& k. [$ X: w+ Q9 R$silent:执行SQL失败时,是否不提示
& Z# P+ L" t. s" s. O7 y/ v$unbufered:是否使用无缓存查询
5 ^" M: G+ t. q0 x实例:
& ?+ j" V& V. Z8 W" W$query = DB::query("select * from %t where id IN (%n)",array(
- U$ E* z+ ?6 T, K. m'test_db',array(1,2,3) 3 \% K0 v9 Q4 ]
));
) X" p) b: N/ E2 u8 z* n/ J$ `debug($query); " y7 N! p# Z& l- [8 G" e
4 e3 G% v/ r, U8 o# y3 n
删除 3 k' i" ]7 z9 N( m
DB::query("delete from %t where id = %id",array( & K: n l, {+ `
'test_db',11 + n2 }2 `% p* C# W
));
5 m4 G) a; j1 U- M- A! x9 J- u% w+ B" D) I- Q. k- _9 y
% s. I g" k' y4 R" O( x( _1 [1 x
资源集转换结果集
* ?# T- K" k0 @- q- D! L方法: : h1 ~5 E6 {9 P1 Y i
DB::fetch()
9 S8 U. p( ]1 X& J) n! _参数:
* v0 s& y- G, ~8 {! G$resourceid:数据库查询的query资源 2 s; m" z; k* _1 R0 [
$type:数组类型
" C. N7 F, U9 f2 { h实例: 3 F& s! H7 b7 `( o, T) j, ?3 T, B
查询 ' F0 E0 L; a+ r# l0 B$ k% l7 t2 E6 S
$query = DB::query("select * from %t where id IN (%n)",array(
7 K# `# ?7 h6 J0 y* A7 k'test_db',array(1,2,3)
B: ^+ A5 c( _' B- Z)); % l/ N4 |4 N8 ]; p* ^/ S
while($res = DB::fetch($query)){
. u. C" ~- a6 o $result[] = $res;
8 q; h2 N& D1 L6 m1 P} ]7 V; V7 o5 F4 ~+ x9 i
debug($query);
( f; t5 ~% l( M2 t% o2 ]3 c) Q& i1 o0 I. R3 P/ U3 z
单字段资源集转换结果集(一般用于查看获取统计值) - _3 M5 R ~/ ^; ~1 t- L
方法: * g8 n- R' G ~5 X' R5 i
DB::result() - {% d8 G( \; y* y" D
参数:
A1 [, D, M% t9 E5 @( V$resourceid:数据库查询的query资源
3 F5 P6 q! d5 {8 s$ G0 C+ ^( q$row:指定行的第一个字段 ( X6 ]: E- q) i$ D- ]; A$ s6 g
实例: 5 o& `; ~- e6 h2 V* [8 A0 n
$query = DB::query("select count(*) from %t where id < %id order by id",array( . N, ? Q% V1 |$ e
'test_db',10
/ u; Z, F! f8 i& P; H8 O)); 8 Y: T: q! h5 ]1 v
$data = DB::result($query,1);
" t/ r. n6 j! g4 u2 f2 E& {; |0 q; M6 j
5 B$ {; C3 l+ }" T' _4 o0 b+ c常用实例: $ W* P8 n- h; S' d# L
$query = DB::query("select count(*) from %t where id > %d",array( ( ]+ ]5 @7 B) l! H: U
'test_db',7
5 Z: E3 _5 ^. Z3 s+ b$ Z( r));
: i3 h8 P. r; e0 o, {5 w' T$data = DB::result($query,0); 3 u8 W* e/ U, h
echo $data;
5 a# o, n, d; I( Y& w7 ?! R8 t
1 y6 y9 P. P V1 K: h9 N0 [# s资源集行数计算(不适合统计太多的资源,速度慢)
9 z- o2 }2 ^. r方法:
9 g" z6 d% T* EDB::num_rows()
6 V) u( U0 h# w5 N* o% l参数:
3 A( W/ L! s6 X4 J8 p4 u$ Z$resourceid:数据库查询的query资源
0 u' L% I9 `9 c, U! n. \5 c实例: , H1 v! i8 ^0 b+ C
$query = DB::query("select * from %t where id > %d",array(
- S, j7 V% T+ u$ e% x# ]'test_db',7 ) P' i' p+ m) A
)); 2 K) ]2 l8 b6 E) U \6 B/ [
$data = DB::num_rows($query);
5 B% i1 ]7 N. F/ zecho $data;
6 m% e/ `: A% V7 z
1 \7 D1 f; m8 M5 x9 F* {1 T资源集资源释放
! g5 t' O9 I) u0 [* p方法: 7 |4 l2 H0 F8 F6 s! v
DB::free_result()
: k$ G4 o$ T1 m# P' ^% a/ |! @& T参数: 4 f, k {3 G+ b- L+ r* h1 {8 {
$query:执行SQL语句的query资源 8 Z( y; X0 H. s7 h2 P
$query = DB::query("select count(*) from %t where id > %d",array(
7 N4 ]: z7 Z4 l5 I( I'test_db',7 / a, W4 b* m' s, E
));
5 n1 U4 Q e2 l, |$data = DB::result($query,0); 0 C* \' \ u/ R1 M. x# _7 Z4 d0 x
DB::free_result($query); , z2 S/ C; X4 Q# W
echo $data;
) V5 O q' ^- I- I" c3 [8 r0 b7 A+ v. j5 ?
按字段排序 2 z- I- t1 e$ p0 {5 v
方法:
" M# l4 ~1 e# \) I- XDB:  rder()
& w B O0 b! _6 k+ _6 j, y参数: 9 t0 `. F% k1 \! \6 o% X1 `
$field:需要排序的字段 8 v! y) [ n: u; e7 I9 y; l# g9 C
$order:排序方式
* R; A2 K4 d/ x6 h# D/ `实例:
8 O3 N3 k8 }" W$ r$query = DB::query("select * from %t where id > %d order by".DB:  rder('id','desc'),array(
, O; {3 R1 I/ f( x/ A+ }'test_db',7 - n2 y u4 q& v# r
));
' B) d( l) f" ?- x0 i$data = DB::result($query,0);
1 w( y# Y1 D' l; \: A6 Y9 a2 C2 D5 yDB::free_result($query);
/ X4 q6 v( p( C5 l* R; Techo $data; ) e+ q( @% N$ \8 L: N. ?( a
+ e, g, i$ U: l7 }" _2 C& }; a" P8 m取值区间设定
' Z. J) k) O+ q Y方法:
' n& C) T# a) y- F7 x# q2 N# SDB::query() 3 @/ U7 N6 z- r! D6 ]6 U! I2 @
参数:
, c! Z5 _; P$ R) L" y4 W0 M- e$start:开始的索引值 $ o' T+ }$ C0 o* |$ }2 s; f, ^( n, `! S
$limit:条目数
; o$ z$ ^7 E6 F) I/ e/ |/ O$query = DB::query("select * from %t where id > %d order by".DB:  rder('id').DB::limit(0,3),array( - z7 z. u, |; T+ j1 y# A
'test_db',7 * i, m' U1 u0 m7 P3 j6 H) c
)); 9 h% a' G d* o" f2 Y
& [7 C7 q' E: g: W
字段拼接 ) F8 [ _9 D; U+ ^# B* j
方法: ) c* {" Z) E2 Z, O7 D& m
DB::implode()
. @+ l( s# y! v参数:
) Z) X. r, }9 a. d7 M: y3 J$array:需要拼接的字段数组
6 O, M4 p) F) w' K$glue:字段拼接的字符串 . p- O+ Y$ z9 h4 i
实例: . I) k* C. }9 S i1 h' u
echo DB::implode(array('id' => 10,'name' => 'ddd'),'and'); 5 k: q/ p' {; R' X5 L8 H
3 W4 }( W3 S, d- h- W
应用: $ l0 y6 o2 ]0 p0 S
DB::query("update %t set".DB::implode(array(
6 Y2 j0 ~9 C5 x" P3 s; h8 ]'name' => 'ddd', # v4 R& K6 B$ }+ s
'id' => 22
2 k7 d% _' W$ r8 X* ?0 I7 G n" w)).'where id=%d',array(
; J: k: m, X# Z, Z$ o% l'test_db', + M5 S4 ?0 h4 i$ J- f5 ]3 ?% ?
10,
4 c$ T9 s! j- ^) * G# t z3 j! { e
);
, ]1 w$ i; k& n* y5 @) j& S
0 ~! @% O/ R4 z b字段数据设定 , E, X2 E% u) `/ m
方法:
* C8 L/ v) c: v# p K( HDB::field()
, b" `8 \( w3 a# S [参数:
3 Y( V8 r, X8 ?" I* D }- h$field:需要排序的字段
* \. M3 n, I/ d8 h- Q6 [$ m$val:字段对应的值 9 B: [* ?1 s5 J+ Y2 g6 Z& R6 q
$glue:连接字段与值的类型
" |. s5 h, Y9 n实例: & a4 c: [" I! ]# R
DB::field('id', 99, '=');
0 Z' l9 f; n Q g5 ^1 U" w2 U0 B7 F/ I( x% V+ h
应用(把3改成99): ! t6 w: t3 h4 X3 b+ {1 l; Z. F) B
DB::query("update %t set ".DB::field('id', '99', =)." where id=%d",array( + A. y7 ? s9 P" K2 r+ L; Q4 ^
array('test_db', 3);
! M1 h* J- M0 P));
M$ S Y1 c. O
| |  | |  |
|
|