谢谢,雪悟,二球.

Pear DB 新手入门指南2

上一篇 / 下一篇  2006-12-18 17:50:56 / 个人分类:全是帅的不能再输啦

3.3         获得select的数据

*fo \)q:|mB0

3.3.1   获取数据的函数

0jUVHd(B@.W0
 
<?phpPHPChina 开源社区门户v9W
bmoJ
x
// Once you have a valid DB Result object
nw3Hndg]:Yu0
...PHPChina 开源社区门户j!S5c?%K4W
// Get each row of data on each iteration untilPHPChina 开源社区门户^+G*\c#B
// there is no more rows
+?z"nzgv PED0
while ($row $result->fetchRow()) {PHPChina 开源社区门户%S3I RRw7Z-V6P
    
$id $row[0];PHPChina 开源社区门户JbyNN*@
}
'o#l-d0S(AU%DY_0
?>
 

E'[mc!rA-Q `T^0除了fetchRow()还可以使用fetchInto()直接插入$row的值。

q ?2D]-_L _.g0
 
<?php
kTIA:xG E&n0
...PHPChina 开源社区门户9YMQxC#l4_5{
while (
$result->fetchInto($row)) {
`}H}.`V9N Uu;^v0     
$id $row[0];PHPChina 开源社区门户RCl#CPO5Z U
}PHPChina 开源社区门户8MB9b1V+P1@)k2o
?>
 

 PHPChina 开源社区门户 [j^:a5F+j?

3.3.2   选择获取数据的格式PHPChina 开源社区门户l0z+o7f6|c

0E{rI1Y"ar0获取模式有DB_FETCHMODE_ORDERED(默认), DB_FETCHMODE_ASSOC and DB_FETCHMODE_OBJECT.

3S6Iy C[ji#i0

从获取数据方法返回的结果示例:

i"y/xd c;_?W0
 
<?php
-s,BVP Sa*q8@{0 $res 
$db->query('select id, name, email from users');
't0XU_ c'C,Jt0K0
$row $res->fetchRow($mode);
8@g_D$OV$p.t0
5|$e Cu@k(zv0
//With $mode = DB_FETCHMODE_ORDERED
6F:wa E:]!_Li"P W0 //The default behavīor is to return an ordered array.PHPChina 开源社区门户+|C*Gs'R&Ea ^v
$row = array (
;t.sq+W:l p0     
=> <column "id" data>,
-n)f$V!TM|+}&[0     
=> <column "name" data>,
9},~{w1wV ['ix0     
=> <column "email" data>
_8y3Nz!_Y)z Vc ?0 );
%Z$GM{ k#`.B0
&X,XzPSo ^0
$id $row[0];PHPChina 开源社区门户4]%e*n s#h

o J7ci1J@8yzP0
//With $mode = DB_FETCHMODE_ASSOC
+e;Aqx1u3E/O!s!k-d0 //Returns an associative array with column names as array keys:PHPChina 开源社区门户 t9RC(z0q/zR-\ D
$row = array (
Y ]IZL:O(y0     
'id'    => <column "id" data>,PHPChina 开源社区门户9fM&g{ N2Q%]
    
'name'  => <column "name" data>,
1^#l-y(t4sd&n4m,}L0     
'email' => <column "email" data>PHPChina 开源社区门户V7P5^z4a!g x
);
|l4y [4n eX z0c0 PHPChina 开源社区门户C-Hx#O:}AE A
$id $row['id'];
U q0y/p+X7L0
O vV{"o6K2a+MD0
//With $mode = DB_FETCHMODE_OBJECTPHPChina 开源社区门户#C6S[-o2m3gK;z
//Returns a DB_row object with column names as properties:PHPChina 开源社区门户6~mm8TWQ3m wBB
$row db_row Object 
Q \M/e'v t;@0
(
/]8\2TyTi xL0     [
id]    => <column "id" data>,
U-^ Q-h9qU z ]x0     [
name]  => <column "name" data>,PHPChina 开源社区门户1NP\/F8Ax"@x6VD2V
    [
email] => <column "email" data>PHPChina 开源社区门户s J6I+R7G Aj%w
)PHPChina 开源社区门户0Kz8X^F!M(FT3`\
PHPChina 开源社区门户Z|T8T5{!@ YTB
$id $row->id;PHPChina 开源社区门户6e[sA4gAo;s0X N
?>
 

 

5rXeDap \0

3.3.3   设置获取数据的格式PHPChina 开源社区门户,uMM`xk&?(N

c_!E"G"]{;tu0可以使用 fetchrow() / fetchInto() 方法或者为你的DB实例设置一个默认的模式。

,Mq%V~v/|R'TT0
 
<?php
Wx ]yc'}c,H*n0
...PHPChina 开源社区门户1}8O t+@ d/F`
// 1) Set the mode per call:PHPChina 开源社区门户~R RT B}U.r
while ($row $result->fetchRow(DB_FETCHMODE_ASSOC)) {PHPChina 开源社区门户,u]#]:@$yLE
    [..]
6D}B4{U9v0 }
Ia)x9CR4e0 while (
$result->fetchInto($rowDB_FETCHMODE_ASSOC)) {
:zE!lC7b0     [..]
"W cJV,hSh!dO o9^s"g0 }
D4VD-K.~;~:yP0 PHPChina 开源社区门户'Vg H(^K)EV.U
// 2) Set the mode for all calls:PHPChina 开源社区门户/l eWv'BM4v&\
$db DB::connect($dsn);
&s?z?1Eo?[;m0
// this will set a default fetchmode for this Pear DB instance
L+AN? Kyspn0 // (for all queries)
ojM+T4t8[0
$db->setFetchMode(DB_FETCHMODE_ASSOC);
;US#dv"G+f~0
$result $db->query(...);PHPChina 开源社区门户*J1M(iX7S6jSp*Jr
while (
$row $result->fetchRow()) {PHPChina 开源社区门户3c3Uj-V%pVl3Y i
    
$id $row['id'];PHPChina 开源社区门户qr8s g7T3A!N9f*m
}PHPChina 开源社区门户5d,L6O9FMV
?>
 

 PHPChina 开源社区门户v:J@Sz:[(I? k

3.3.4   控制获取数据数量

5aP$l?w/@0 PHPChina 开源社区门户3RG IUF

同时Pear DB获取数据可以带有额外的参数,可以使用一个数字参数来获取需要的数据数量。在你只需要获得数据中的一部分时这时候特别有用(比如在做分页程序的时候) PHPChina 开源社区门户2{7c2x sg)MWD

 
<?phpPHPChina 开源社区门户UL(U+q;U;w
...
;? I'S f._y'x0
// the row to start fetching
*vn3~Hi;}~,X0
$from 50;PHPChina 开源社区门户-Dz;n7p0ZV]8G
// how many results per pagePHPChina 开源社区门户*rPu { BD(rEG
$res_per_page 10;
Z-PUJN8g u0
// the last row to fetch for this page
JV_7o P} U0
$to $from $res_per_page;
q ?YA Q9V vwt0 foreach (
range($from$to) as $rownum) {PHPChina 开源社区门户l Z? X3f Q-rz Xz
    if (!
$row $res->fetchrow($fetchmode$rownum)) {
x3mz`%Q5vo)h0         break;
:m wps X]| qDR4\7B0     }PHPChina 开源社区门户6G Olzh zK5kp
    
$id $row[0];
DqP1_-pT9R8q5m%W0     ....PHPChina 开源社区门户;YE+s? n+I
}PHPChina 开源社区门户LG c`:ak3d$D
?>
 

 

$hBY)vab#z0

3.3.5   清除结果,释放变量PHPChina 开源社区门户'AB:?CIS

R#eH3H`0当你完成查询的时候,可以用free()方法来结束: PHPChina 开源社区门户v5D(k;MK

 
<?php
bcG1RDH&g%}0
...PHPChina 开源社区门户J j-n`,C+gH*S
$result $db->query('SELECT * FROM clients');PHPChina 开源社区门户,sPCykXs"h
while (
$row $result->fetchRow()) {
j%ZR}+f'Gcwu1Q%H0     ...PHPChina 开源社区门户lm$E o B.aDQL6n
}PHPChina 开源社区门户 ~UFt:n"ts$l[
$result->free();PHPChina 开源社区门户,caT iC3a%j
?>
 

 PHPChina 开源社区门户0e)hB3?/xE#Vi


TAG: 全是帅的不能再输啦

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar