SinhVienIT.net Tai Lieu LaptrinhPHPvaMySQL

Embed Size (px)

DESCRIPTION

SinhVienIT.net Tai Lieu LaptrinhPHPvaMySQL

Citation preview

  • Ban ch o cntt ca c quan ng PHP & MySQL

    1

    Ban ch o cng ngh thng tin ca c quan ng

    ***

    TI liu tham kho

    Ngn ng lp trnh pHP

    H ni, 2003

  • Ban ch o cntt ca c quan ng PHP & MySQL

    2

    Phn I : Gii thiu ngn ng lp trnh PHP

    chng i : Ngn ng lp trnh pHP

    I. Gii thiu PHP v mi trng lp trnh web.

    1. PHP l g ?

    Ci tn PHP ban u c vit tt bi cm t Personal Home Page, v c pht trin t nm 1994 bi Rasmus Lerdorf. Lc u ch l mt b c t Perl, c s dng lu du vt ngi dng trn cc trang web. Sau , Rasmus Lerdorf pht trin PHP nh l mt my c t (Scripting engine). Vo gia nm 1997, PHP c pht trin nhanh chng trong s yu thch ca nhiu ngi. PHP khng cn l mt d n c nhn ca Rasmus Lerdorf v tr thnh mt cng ngh web quan trng. Zeev Suraski v Andi Gutmans hon thin vic phn tch c php cho ngn ng ri thng 6 nm 1998, PHP3 ra i (phin bn ny c phn m rng l *.php3). Cho n tn thi im , PHP cha mt ln c pht trin chnh thc, mt yu cu vit li b c t c a ra, ngay sau PHP4 ra i (phin bn ny c phn m rng khng phi l *.php4 m l *.php). PHP4 nhanh hn so vi PHP3 rt nhiu. PHP by gi c gi l PHP Hypertext PreProcesor.

    2. Ti sao phi s dng PHP

    Nh chng ta bit, c rt nhiu trang web c xy dng bi ngn ng HTML (HyperText Markup Language). y ch l nhng trang web tnh, ngha l chng ch cha ng mt ni dung c th vi nhng dng vn bn n thun, hnh nh ,v c th c s h tr bi ngn ng JavaScript, hoc Java Apple. Nhng trang web nh vy ngi ta thng gi l client-side. Tuy nhin, Internet v Intranets c s dng cho cc ng dng cn ti c s d liu. Cc trang ng dng nh vy c gi l trang web ng, bi v ni dung ca chng lun thay i ty thuc vo d liu v ngi s dng. PHP l ngn ng lm c nhng iu nh vy. Bng cch chy chng trnh PHP trn my ch Web server, bn c th to ra cc ng dng

  • Ban ch o cntt ca c quan ng PHP & MySQL

    3

    c s tng tc vi c s d liu to ra nhng trang web v y c gi l trang web ng.

    Chng ta hy xem xt cch hot ng

    ca trang web c vit bng ngn ng HTML v PHP nh th no.

    Vi cc trang HTML :

    Khi c yu cu ti mt trang web t

    pha ngi s dng (browser). Web server thc hiu ba bc sau :

    + c yu cu t pha browser, + Tm trang web trn server.

    + Gi trang web tr li cho browser (nu tm thy) qua mng Internet hoc Intranet .

    Vi cc trang PHP : Khc vi cc trang HTML, khi mt trang PHP c yu cu, web

    server phn tch v thi hnh cc on m PHP

    to ra trang HTML.

    iu c th hin bng bn bc sau : + c yu cu t pha browser. + Tm trang web trn server. + Thc hin cc on m PHP trn trang web sa

    i ni dung ca trang. + Gi tr li ni dung cho browser (y l trang HTML c th hin th c bi trnh duyt Internet Explorer hoc trnh duyt no ).

    Tm li, s khc nhau gia HTML v PHP l HTML khng c thc hin trn my ch Web server cn cc trang *.php

    vit bng cc on m PHP c thc hin trn my ch Web server do n linh ng v mm do hn .

    Trang html

    Web server + c yu cu t browser + Tm file.htm trn server + Gi li c file.htm cho browser

    Request http://domain/file.htm

    Web server + c yu cu t browser + Tm trang web(file.php) trn server+ Thc hin cc on m PHP + Gi tr li ni dung cho browser

    Request http://domain/file.php

    Kt xut

  • Ban ch o cntt ca c quan ng PHP & MySQL

    4

    3. Nhng im mnh ca PHP

    -PHP thc hin vi tc rt nhanh v hiu qu .Mt Server bnh thng c th p ng c hng triu truy cp ti trong mt ngy. PHP h tr kt ni ti rt nhiu h CSDL khc nhau:

    PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase, Sybase, ... Ngoi ra cn h tr kt ni vi ODBC thng qua c th kt ni vi nhiu ngn ng khc m ODBC h tr.

    -PHP cung cp mt h thng th vin phong ph : Do PHP ngay t u c thit k nhm mc ch xy dng v pht trin cc ng dng trn web nn PHP cung cp rt nhiu hm xy dng sn gip thc hin cc cng vic rt d dng : gi, nhn mail ,lm vic vi cc cookie, v nhiu th khc na .

    -PHP l mt ngn ng rt d dng, d hc v n gin hn nhiu so vi cc ngn ng khc nh Perl, Java. Nu bn bit ngn ng C th mi vic s hon ton thun li .

    -PHP c th s dng c trn nhiu h iu hnh, chng ta c th vit chng trn Unix, Lunix v cc phin bn ca Windows. V c th em m PHP ny chy trn cc h iu hnh khc m khng phi sa i li m.

    -PHP l ngn ng m ngun m.

    II. Bin, hng s v kiu d liu trong PHP.

    1. Kiu d liu .

    PHP c ba kiu d liu c bn : interger, double v string. Ngoi ra cn c cc kiu d liu khc (nhng khng phi cc kiu d liu c bn) nh arrays (cc kiu d liu mng), objects (cc kiu d liu i tng).

    Interger l kiu chim 4 byte b nh ,gi tr ca n trong khong 2 t ti + 2 t. Kiu Double l kiu s thc ,phm vi biu din (10-308 10308). Kiu string dng cha cc gi tr bao gm cc k t v con s .

    V d : 2 // y l kiu interger

    1.0 // y l kiu double

    2 // y l kiu string

  • Ban ch o cntt ca c quan ng PHP & MySQL

    5

    2 hours // y l mt kiu string khc

    2. Hng s

    Hng s l nhng gi tr khng i. Chng ta thng dng hng s lu cc gi tr khng i trong sut chng trnh nh : nhit (00C), cc gi tr thi gian ch s chuyn giao gia sng ,cha ,chiu ,ti ...

    a. Khai bo hng s :

    Ta dng hm define() khai bo hng s :

    define(COMPANY, Phops Bicycles);

    define(YELLOW, #FFFF00);

    define(VERSION, 4);

    define(NL, \n);

    Trong v d trn chng ta dng hm define() khai bo hng s NL. Hng s ny l mt th ngt dng trong HTML.

    Chng ta s s dng cc hng s trong PHP nh sau :

    echo (Employment at . COMPANY. NL);

    Cch vit trn cng ging nh cc vit sau:

    echo (Employment at Phops Bicycles\n);

    Ch : hng s phi ngoi hai du v . Trng hp sau l khng c hiu lc : echo (Employment at COMPANY NL);. Khi thc hin n s cho kt qu l : Employment at COMPANY NL.

    Hm defined() : hm ny dng kim tra xem mt hng s no c khai bo cha.

    V d : if ( defined (YELLOW)) {

    echo (\n);

    }

  • Ban ch o cntt ca c quan ng PHP & MySQL

    6

    b. Cc hng s c nh ngha trong PHP (Built-in Constants):

    h tr cho ngi lp trnh, PHP cung cp sn cc hng s nh : cc bin mi trng, cc bin ca Web server Apache ... Ngi lp trnh c th s dng hm phpinfo() xem cc gi tr ny.

    + Hng s nguyn : y l nhng gi tr c kiu integer. V d : 10

    + Hng s thc: y l nhng gi tr c kiu double. V d : 10.00

    + Hng k t : y l mt xu k t t trong du ngoc n hoc

    kp.

    V d : Ngn ng lp trnh PHP.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    7

    3. Bin v gi tr logic.

    + Cng ging vi C/C++, PHP khng c khi nim TRUE v FALSE. Cc gi tr TRUE c hiu l nhng gi tr bng 1 v gi tr FALSE l nhng gi tr bng 0 hoc xu rng .

    + Khi s dng bin chng ta khng cn khai bo kiu .

    V d : $a = 1; // $a l mt bin kiu integer.

    $a = 1.2; // by gi $a l mt bin kiu double.

    $a = A ; // by gi $a li l mt bin kiu string.

    + Nu nh thc hin php ton gia bin c kiu s v kiu string, PHP s coi chui l mt dy s nh sau :

    $str = 222B Baker Street;

    Ta thy bin $str c gi tr kiu string, v nu cng s 3 vi gi tr ny th :

    $x = 3 + $str ; // $x = 225

    khi bin $x nhn c gi tr 255 v PHP cng 3 vi ba s u. Nhng nu ta in gi tr ca bin $str th

    echo ($str); // print : 222B Baker Street

    Ch rng cc php ton gia s v chui ch ng khi k t u ca chui l s .

    + Ta cng c th lm thay i kiu gi tr ca mt bin bng cch p kiu

    $a = 11.2; // bin $a c kiu double

    $a = (int) $a; // by gi $a c kiu integer ,gi tr l 11

    $a = (double) $a; // by gi $a li c kiu double, gi tr l 11.0

    $b = (string) $a ; // bin $b c kiu string ,gi tr l 11

    Cng phi bit rng PHP t ng chuyn i kiu rt tt. Nu tht s cn thit chng ta mi phi dng cch trn.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    8

    + Cc hm lm vic vi bin

    gettype() : hm ny tr li kiu ca mt bin no . Gi tr tr v c th l : integer

    double

    string

    array

    object

    class

    unknown type

    v d :

    if (gettype($user_input) == integer)

    {

    $age = $user_input;

    }

    settype() : hm ny p kiu cho mt bin no . Nu thnh cng hm tr v gi tr 1 (true) ,ngc li l 0 (false).

    v du :

    $a = 7.5;

    settype($a, integer);

    if (settype($a, array)){

    echo (Conversion succeeded. );

    }else{

    echo (Conversion error. );

    }

    isset() v unset() : Hm isset() kim tra mt bin c gn gi tr hay cha, hm unset() s gii phng b nh cho mt bin no .

    v d :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    9

    $id = 323bb;

    if (isset($id)) {

    echo (D liu c gn);

    }else{

    echo (D liu cha c gn);

    }

    unset($id);

    if(!isset($id)) {

    echo (D liu c gii phng);

    }

    empty() : Cng ging hm isset(), hm empty() s tr v gi tr 1 (true) nu mt bin l rng v ngc li 0 (false). i vi bin c kiu s gi tr bng 0 c coi l rng, bin kiu string c coi l rng nu xu l xu rng.

    v d:

    echo empty($new) ; // true

    $new = 1;

    echo empty($new); // false

    $new = ;

    echo empty($new); // true

    $new = 0;

    echo empty($new); // true

    $new = So 323;

    echo empty($new); // false

    unset($new);

    echo empty($new); // true

  • Ban ch o cntt ca c quan ng PHP & MySQL

    10

    III. Cc ton t

    + Bng cc php ton s hc

    Php ton ngha V d Gii thch

    +

    -

    *

    /

    %

    Php cng

    Php tr

    Php nhn

    Php chia

    Chia d

    7 + 2

    7 2

    7 * 2

    7 / 2

    7 % 2

    Thc hin php cng gia 7 v 2 : 9

    Thc hin php tr gia 7 v 2 : 5

    Thc hin php nhn gia 7 v 2 : 14

    Thc hin php chia gia 7 v 2 : 3.5

    Thc hin php chia d gia 7 v 2 : 1

    Ta c th vit cc php ton ngn gn nh bng sau :

    Khi vit Tng ng vi

    $h += $i

    $h -= $i

    $h *= $i

    $h /= $i

    $h %= $i

    $h = $h + $i

    $h = $h - $i

    $h = $h * $i

    $h = $h / $i

    $h = $h % $i

    + Php gn :

    v d :

    $x = 1;

    $y = $x + 1;

    $length = $area / $width;

  • Ban ch o cntt ca c quan ng PHP & MySQL

    11

    + Bng cc php ton quan h

    Php ton

    ngha V d Gii thich

    ==

    <

    >

    =

    !=

    So snh bng

    So snh nh hn

    So snh ln hn

    Nh hn hoc bng

    Ln hn hoc bng

    So snh khc

    So snh khc

    $h == $i

    $h < $i

    $h > $i

    $h $i

    $h != $i

    $h $i

    Kim tra $h v $i c bng nhau khng

    Kim tra $h c nh hn $i khng

    Kim tra $h c ln hn $i khng

    Kim tra $h c nh hn hoc bng $i

    Kim tra $h c ln hn hoc bng $i

    Kim tra $h c khc $i khng

    Kim tra $h c khc $i khng

    Cc php so snh thng dng kim tra iu kin trong cc cu lnh iu khin m ta s hc bi sau .

    + Bng cc php ton logic

    Php ton logic cng vi ton hng to thnh biu thc logic. Biu thc logic c th c gi tr l 1 (true) hoc 0 (false) .

    Ton hng a Ton hng b a && b a || b !a !b

    1

    1

    0

    0

    1

    0

    1

    0

    1

    0

    0

    0

    1

    1

    1

    0

    0

    0

    1

    1

    0

    1

    0

    1

    + Cc php ton vi bin kiu string .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    12

    Ta s dng du . ghp hai bin kiu string vi nhau .

    v d : $first = Phineas;

    $last = Phop;

    $full = $first. . $last; // $full = Phineas Phop ;

    echo ($full);

    Ta c th ghp hai xu nh sau:

    echo ($last. s Bicycles); //print : Phops Bicycles

    c th chn mt bin vo trong hng c kiu string th tn bin phi trong du ng m ngoc nhn.

    echo (${last}s Bicycles);

    + Cc php ton thao tc mc bit.

    Cc php ton thao tc mc bit tc ng ln tng bit ca ton hng .

    K hiu ngha

    &

    |

    ^

    AND bit

    OR bit

    XOR bit

    Bng cc php ton nh sau :

    & Kt qu | Kt qu ^ Kt qu

    1&1

    1&0

    0&1

    0&0

    1

    0

    0

    0

    1 | 1

    1 | 0

    0 | 1

    0 | 0

    1

    1

    1

    0

    1^1

    1^0

    0^1

    0^0

    0

    1

    1

    0

    PHP cng h tr cc php dch phi v dch tri

    >> : dch phi

    > n lm cho cc bit trong $a b dch phi i n v tr. Tng t ta c php dch tri .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    13

    v d : 11 >> 2 = 2 ;

    v :

    11 (1011)

    >> 2

    2 (0010)

    + Cc php ton tng gim :

    - Php tng : php tng (ton t tng) tng gi tr ca ton hng ln mt n v.

    $a ++ : $a c s dng ri mi tng

    ++ $a : $a tng ri mi c s dng

    - Php gim : tng t nh php tng, khc l gi tr b gim i mt n v.

    $a -- : $a c s dng ri mi gim

    -- $a : $a gim ri mi c s dng

    v d :

    $a = 10; // $a bng 10

    $b = $a++ ; // $a bng 11 nhng $b bng 10

    $a = 10; // $a bng 10

    $b = -- $a ; // $a bng 9 v $b bng 9

    + Php ton iu kin. ? :

    Php ton iu kin cng vi ton hng to nn biu thc iu kin. Ta k hiu e1 ,e2, e3 l ba ton hng.

    Biu thc c dng : e1 ? e2 : e3

    Nu e1 != 0 th gi tr ca biu thc iu kin l e2

    Nu e1 == 0 th gi tr ca biu thc iu kin l e3

    v d : tm max

    max = $a>$b ? a : b ;

  • Ban ch o cntt ca c quan ng PHP & MySQL

    14

    + Ton t sizeof (i tng) :

    Php ton sizeof cho bit kch thc (tnh bng byte ) nh m i

    tng chim trong b nh. i tng y c kiu l integer, double, string.

    v d : $a = 10;

    echo sizeof($a); //s in ra mn hnh l : 4

    IV. Cc cu lnh iu khin

    1. Lnh if_else : y l lnh r nhnh c iu kin .

    a. Dng 1 :

    if ( biu thc ) cu lnh;

    Cu lnh y tng ng vi mt khi lnh. Mt khi lnh c t trong du ngoc kp.

    ngha :

    + Nu biu thc khc khng ,th cu lnh c thc hin.

    + Nu biu thc bng khng, th cu lnh khng c thc hin

    b. Dng 2 :

    if ( biu thc )

    cu lnh 1;

    else

    cu lnh 2;

    ngha :

    + Nu biu thc khc khng ,th cu lnh 1 c thc hin.

    + Nu biu thc bng khng, th cu lnh 2 c thc hin

    Ch :

    * Cu lnh 1 dng 2 l lnh if_else

  • Ban ch o cntt ca c quan ng PHP & MySQL

    15

    + Nu lng else bng lng If th else thuc v If gn nht theo tng cp t trong ra ngoi.

    V d : $a = 10; $b = 10; $c = 3; $d = 3; $e = 12; $f = 8;

    if($a == $b) if($c == $d) if($e == $f) $max = $e; else $max = $f; else $max = $d; else $max = $b echo $max ; //printf max = 8

    + Nu lng else t hn lng If th else thuc v If ngn nht theo tng cp t trong ra ngoi.

    V d :

    Tng ng vi :

    * Cu lnh 2 ca dng 2 l elseif :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    16

    Bt ngun t : if ( biu_thc1 ) cu_lnh 1; else if ( biu_thc 2 ) cu_lnh 2; else if ( biu_thc 3 ) cu_lnh 3; ... else if ( biu_thc i ) cu_lnh i; ... else cu_lnh n;

    C th vit li nh sau: if ( biu_thc1 ) cu_lnh 1; elseif (biu_thc 2) cu_lnh 2; elseif (biu_thc 3) cu_lnh 3; ... elseif (biu_thc i) cu_lnh i; ... else cu_lnh n;

    Cu lnh elseif to ra lnh r nhnh c iu kin trong thc hin 1 trong n cch khc nhau.

    - Nu biu_thc i khc khng (i = 1,..n-1) th thc hin cu lnh i .

    - Nu biu_thc i bng khng (i = 1, ..n-1) th cu lnh th n c thc hin.

    2. Cu lnh switch :

    switch (biu_thc n) { case n1: cu lnh 1; break; case n2: cu lnh 2; break; ... case nn: cu lnh nn; [default: cu lnh] }

  • Ban ch o cntt ca c quan ng PHP & MySQL

    17

    Cu lnh switch l cu lnh r nhnh c iu kin trong thc hin mt trong n ci r nhnh.

    +Nu biu_thc n = ni (i = 1, .. n) th cu lnh sau case ni c thc hin cho n khi gp lnh break hoc du ngoc }

    +Nu biu_thc n != mi ni (i = 1, .. n) m c nhnh Default th cc cu lnh sau Default c thc hin.

    V d :

    3. Cu lnh FOR:

    Dng lnh : for (biu_thc 1; biu_thc 2; biu_thc 3)

    cu lnh ;

    Lnh for l lnh to chu trnh c iu kin.

    Bc 1 : tnh biu_thc 1 Bc 2 : tnh biu_thc 2 :

    Nu biu_thc 2 khc 0 th thc hin cu lnh v sang bc 3.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    18

    Nu biu_thc 2 bng 0 th kt thc vng for

    Bc 3 : tnh biu_thc 3 v quay li bc 2.

    + biu_thc 1, biu_thc 2, biu_thc 3 l cc thnh phn. Mi thnh phn c th gm nhiu biu thc. Khi mi biu thc c vit cch nhau mt du phy (,).

    +Cc biu thc c tnh ln lt t tri qua phi

    +Biu thc trong biu_thc 2 quyt nh thc hin thn ca for.

    V d :

    +C th vng mt bt k thnh phn no. Nu vng mt biu_thc 2 th cu lnh lun c thc hin. Mc d vng mt vn phi c du chm phy (;)

    V d :

    +Nu vng biu_thc 1 v biu_thc 3 th :

    for ( ; biu_thc 2 ; ) cau_lenh ;

    tng ng vi :

    while (biu_thc 2) cau_lenh ;

    4. Cu lnh WHILE

    while (biu_thc)

    cu lnh ;

  • Ban ch o cntt ca c quan ng PHP & MySQL

    19

    Lnh while l mt lnh to chu trnh c iu kin. iu kin thc hin c kim tra u chu trnh.

    Bc 1 : Tnh biu thc

    Nu biu thc khc khng, sang bc 2

    Nu biu thc bng khng, kt thc vng while

    Bc 2 : Thc hin cu lnh.

    Quay li bc 1.

    Ch :

    + Biu thc c th bao gm nhiu biu thc. Khi cc biu thc c vit cch nhau mt du phy ,v c tnh ln lt t tri qua phi. Biu thc cui cng quyt nh thc hin cu lnh.

    + Khng c php vng mt biu thc

    + to chu trnh v tn th

    while(1)

    { ...

    if (biu_thc) break;

    ...

    }

    V d :

    $i = 11;

    while (--$i)

    { if (my_function($i) == error) {

    break;

    }

    ++ $number;

    }

  • Ban ch o cntt ca c quan ng PHP & MySQL

    20

    5. Lnh DO ... WHILE

    Dng lnh :

    do {

    cu lnh;

    }while (biu_thc);

    Lnh do ... while l lnh to chu trnh c iu kin, trong iu kin thc hin chu trnh c kim tra cui chu trnh.

    Hot ng :

    Bc 1 : Thc hin cu lnh

    Bc 2 : Tnh biu thc biu_thc

    +Nu biu thc biu_thc khc khng th quay li bc 1

    +Nu biu thc biu_thc bng khng th kt thc do ... while.

    V d :

    6. Lnh break

    L lnh r nhnh khng iu kin v thng dng ra khi thn ca switch, while, do ... while, for .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    21

    Lnh break ch cho php thot khi thn cc lnh bn trong nht cha n.

    7. Lnh continue

    L lnh r nhnh khng iu kin .Lnh thng dng bt u li mt chu trnh mi trong cc lnh for, while, do ... while m khng cn thc hin ht ton b thn ca ca lnh to chu trnh.

    8. Khai bo tin x l include v require .

    s dng cc on m bn ngoi, chng ta c th s dng khai bo tin x l include v require. Cho php chng ta xy dng cc hm cc hng s, v bt k on m no sau c th chn vo cc on script.

    Require khc include l, n c th lm thay i ni dung ca trang hin ti khi bin dch, cc trang ny dng khai bo cc bin, cc hng s hay cc on m n gin khng c vng lp. Khi include cho php thc hin cc cu lnh phc tp c cu lnh to chu trnh. N ch s dng cc hm nh nhng hm ngoi ca chng trnh.

    V. Hm trong PHP

    1. Quy tc xy dng hm

    function tn_hm (danh sch i s hnh thc) {

    Thn hm .

    }

    + nh ngha hm khng nht thit phi nm ngoi thn mi hm, trong hm c th c hm khc. Nhng vic s dng mt hm khng khc nhau gia xy dng hm trong thn mt hm v ngoi mi hm .

    + Tn hm tu t v khc tn hm chun.

    + Hm c th c gi tr tr v hoc khng.

    + Cc cu lnh c quyn gi bt k hm no c khai bo v c nh ngha.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    22

    + Return : - Tr mt gi tr v cho ni gi hm

    - L ni bo kt thc hm

    2. Gi hm .

    + Hm phi c xy dng (khai bo) trc khi gi .

    + Khi gi hm, nu c gi tr tr v thng c t trong biu thc .

    3. Bin ton c v bin cc b.

    Thng thng PHP coi cc bin c s dng trong thn ca hm l bin cc b. Ngha l bin trong thn hm khng lm thay i gi tr ca bin ngoi hm . Mun hm lm thay i gi tr ca bin ngoi ta cn khai bo global trc bin trong thn hm .

    V d :

    $position = m;

    function change_pos()

    {

    $position = s;

    }

    change_pos();

    echo ($position); //Prints m

    Ta thy bin $position gi tr khng i sau khi gi hm change_pos().

    $position = m;

    function change_pos()

    { global $position;

    $position = s;

    }

    change_pos();

    echo ($position); //Prints s

  • Ban ch o cntt ca c quan ng PHP & MySQL

    23

    Ta c th vit nh trn hoc ta c th vit :

    $position = m;

    function change_pos()

    { GOLOBALS[$position] = s;

    }

    change_pos();

    echo ($position); //Prints s

    VI. Bin mng trong PHP

    1. Mng mt chiu

    Mng l mt bin bao gm nhiu phn t c cng tn nhng khc nhau v ch s (cc ch s ny tng dn t 0 n n). Vi ngn ng lp trnh C, cc phn t ca mng c cng kiu d liu ,nhng vi PHP th mm do hn. Cc phn t ca mng khng nht thit phi cng kiu.

    a. Khai bo mng mt chiu.

    Ta c th khai bo mng bng cch gn tn mng vi du ng m ngoc vung khng c ch s. Chng ta hy xt v d sau :

    $countries[] = cr;

    $countries[] = de;

    $countries[] = us;

    V d trn to ra mt mng gm ba phn t c ch s l 0, 1 v 2. Vic cng tng t nh ta gn :

    $countries[0] = cr;

    $countries[1] = de;

    $countries[2] = us;

    Ngoi ra cc ch s ca mng khng nht thit phi tng dn m c th c khai bo nh sau :

    $countries[50] = cr;

  • Ban ch o cntt ca c quan ng PHP & MySQL

    24

    $countries[20] = de;

    $countries[10] = us;

    echo ($countries[20]); // prints de

    Khi thm mt phn t mi vo mng chng ta c th vit

    $countries[] = uk; // ch s s l 51

    Mt phn t mi c thm vo vi ch s l ch s ln nht ca mng cng thm mt. Ngoi ra cng c th khai bo mng mt chiu bng cu lnh array

    $countries = array (cr, de, us) ;

    echo ($countries[2]); //prints us

    ch s khng bt u t khng ta c th khai bo li nh sau

    $countries = array (1 => cr, de, us);

    echo ($countries[2]); //prints de Ton t => c th c s dng trc bt k mt phn t no trong mng

    $countries = array (cr, 7 => de, us);

    v khi phn t c gi tr cr c ch s l 0 cn phn t c gi tr de, us ln lt l 7 v 8. Khc vi ngn ng lp trnh C, ch s ca mng mt chiu khng ch l cc s nguyn m cn l xu k t. Ta c th khai bo nh sau :

    $countries[ca] = Canada;

    $countries[cr] = Costa Rica;

    $countries[de] = Germany;

    $countries[uk] = United Kingdom;

    $countries[us] = United States;

    echo ($countries[ca]); // print Canada

    Nu dng array th s l :

    $countries = (ca => Canada,

  • Ban ch o cntt ca c quan ng PHP & MySQL

    25

    cr => Costa Rica,

    de => Germany,

    uk => United Kingdom,

    us => United States);

  • Ban ch o cntt ca c quan ng PHP & MySQL

    26

    b. Lm vic vi cc phn t ca mng

    C th s dng vng lp for xt tng phn t ca mng.

    $countries = array (cr, de, us);

    $num_elements = count($countries);

    for ($i = 0 ; $i < $num_elements ; $i ++) {

    echo ($countries[$i] \n);

    }

    V d trn s ng khi ch s ca cc phn t tng dn u. Nu ch s cc phn t khng theo mt th t no c ta c th s dng hm list() v each().

    reset ($countries);

    while (list ($key, $value ) = each ($countries)) {

    echo (Ch s $key, gi tr $value);

    }

    di chuyn con tr ti phn t tip theo hoc trc ta cng c th dng hm next() - hm next() tr v l 1 (true) nu phn t tip theo khng phi l phn t cui cng, ngc li l 0 (false) v prev() - hm prev() cho gi tr tr v l 1 (true) nu phn t tip theo khng phi l phn t u tin, ngc li l 0 (false). Hm key () s cho bit ch s v hm current() s cho bit gi tr ca phn t .

    $arr = array (3, 4, 5, 6, 7);

    do {

    $k = key ($arr);

    $val = current ($arr);

    echo (Phn t $k = $val);

    }while

    2. Mng hai chiu

    Chng ta c th khai bo mng hai chiu nh sau :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    27

    $countries = array (Europs => array (de, uk),

    North America => array (ca, cr, us));

    echo ($countries[Europs][1]); // print uk

    echo ($countries[North America][2]); // print us

    Ta c cu trc ca mng trn nh sau :

    $countries[Europs] $countries[North America]

    [0] [1] [0] [1] [2]

    de uk ca cr us

    Cng ging nh mng mt chiu ta s dng vng lp nh for, while, do ... while duyt qua cc phn t ca mng.

    V d :

    $countries = array (Europs => array (de, uk),

    North America => array (ca, cr, us));

    while (list ($key1) = each ($countries)) {

    echo ($key1 : \n);

    while (list ($key2, $val) = each($countries[$key1])) {

    echo ( - $val \n)

    }

    }

    Khi chy chng trnh s in ra mn hnh l :

    Europ :

    - de

    - uk

    North America :

    - ca

    - cr

    - us

  • Ban ch o cntt ca c quan ng PHP & MySQL

    28

    3. Cc hm sp xp mng .

    PHP cung cp cho chng ta cc hm sp xp mng. Vi mi loi mng s c mt hm tng ng. Vi mng c ch s l kiu nguyn chng ta c hm sort() sp xp tng dn cc phn t ca mng, hm rsort() s sp xp cc phn t ca mng gim dn .

    $countries = array (us, uk, ca, cr, de);

    sort ($countries);

    while (list ($key, $val) = each ($countries)) {

    echo (Element $key equals $val \n);

    }

    Khi chy chng trnh s l :

    Element 0 equals ca

    Element 1 equals cr

    Element 2 equals de

    Element 3 equals uk

    Element 4 equals us

    Vi mng ch s c kiu string th dng hm asort (), arsort () sp xp mng theo chiu tng dn v gim dn. Nu bn dng cc hm sort() v rsort() th cc ch s c kiu string s chuyn thnh cc ch s c kiu nguyn.

    $countries = array(us => United States,

    uk => United Kingdom,

    ca => Canada,

    cr => Costa Rica,

    de => Germany);

    asort ($countries);

    while (list($key, $val) = each($countries)) {

    echo Chi so $key bang $val \n;

  • Ban ch o cntt ca c quan ng PHP & MySQL

    29

    }

    Kt qu khi chy chng trnh :

    Chi so ca bang Canada

    Chi so cr bang Costa Rica

    Chi so de bang Germany

    Chi so uk bang United Kingdom

    Chi so us bang United States

    Nhng nu thay dng asort ($countries); bng sort ($countries); kt qu s l

    Chi so 0 bang Canada

    Chi so 1 bang Costa Rica

    Chi so 2 bang Germany

    Chi so 3 bang United Kingdom

    Chi so 4 bang United States

    sp xp mng tng dn hay gim dn theo ch s chng ta c hm ksort() tng dn v krsort() gim dn .

    $countries = array(e => United States,

    d => United Kingdom,

    c => Canada,

    b => Costa Rica,

    a => Germany);

    ksort ($countries);

    while (list($key, $val) = each($countries)) {

    echo Chi so $key bang $val \n;

    }

    Kt qu :

    Chi so a bang Germany

  • Ban ch o cntt ca c quan ng PHP & MySQL

    30

    Chi so b bang Costa Rica

    Chi so c bang Canada

    Chi so d bang United Kingdom

    Chi so e bang United States

    VII. Lp trnh hng i tng (OOP)

    1. nh ngha lp .

    Chng ta c th nh ngha lp bng ton t class, v trong mi mt lp chng ta s xy dng cc phng thc v thuc tnh cho lp .

    Gi s mun nh ngha lp Sesssion chng ta lm nh sau :

    nh ngha thuc tnh cho lp chng ta t t kho var trc thuc tnh .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    31

    var $linkid;

    var $seshid;

    var $sessdata;

    var $userid;

    var $error_no;

    var $err;

    ...

    // nh ngha cc phng thc y

    } //Kt thc nh ngha lp

    ?>

    Tip theo chng ta s nh ngha cc phng thc cho lp trn. Phng thc cn xy dng u tin l Session() sau n cc phng thc khc.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    32

    if (!$this->linkid)

    {

    $this->err=mysql_error();

    $this->error_no=102;

    }

    }

    ... // nh ngha cc phng thc khc

    }

    ?>

    2. S dng lp c nh ngha.

    khai bo mt i tng c kiu thuc lp xy dng ta dng ton t new nh sau :

    Welcome to my website,

  • Ban ch o cntt ca c quan ng PHP & MySQL

    33

  • Ban ch o cntt ca c quan ng PHP & MySQL

    34

    - Thuc tnh method : Method c th c gn bng GET hoc POST ,n ch ra phng thc Post hay Get s c s dng trong FORM, gi tr ngm nh l Get.

    - Thuc tnh enctype : Enctype=Mime_type :ch ra loi d liu s gi i. Gi tr ngm nh l application/x-www-form-urlencode.

    Trong mt trang chng ta c th s dng nhiu FORM nhng khng c lng chng vo nhau.

    2. Cc thnh phn c bn ca FORM.

    Mt FORM ,thng thng c ba thnh phn chnh :

    +Textarea

    +Select

    +Input

    a - Textarea

    c bt u bng th v kt thc bng th . Bn trong cha cc k t, th ny c dng lng vo trong FORM.

    Cc thuc tnh ca Texterea .

    - Name : nh ngha tn ca thnh phn, thuc tnh ny lun lun phi c.

    - Rows : Cho bit s hng ca hp vn bn.

    - Cols : Cho bit s ct ca vn bn.

    Wrap : Ch ra cch x l word_wraping (cn chiu di ca dng vn bn theo kch thc ca hp vn bn) trong hp thoi. Nu wrap=off, chc nng word_wraping b cm. Nu wrap=vitual, chc nng ny c bt ln, khi g vn bn vo, ta thy con tr t ng xung hng mi khi n chy n bin ca hp vn bn, k t newline (OA hex) t ng c thm vo nhng khng c gi i cng FORM. Nu wrap=physical, chc nng ny cng c bt v hot ng nh trn nhng k t newline c gi i cng vi FORM.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    35

    Vn bn nm gia hai th v s c th hin nh on vn bn ngm nh trong vng d liu.

    V d:

    .. .

    b. Select

    c bt u bng th v kt thc bng th , cp th ny c th lng trong FORM hay bt k thnh phn no ca FORM ngoi tr Texterea v Select .

    Select c cc thuc tnh sau :

    - Name : Tn ca thnh phn.

    - Size : Cho bit s thnh phn s hin th, gi tr ngm nh l 1, do danh sch la chn thng c th hin di dng pop-up menu. Thuc tnh ny c th khng c.

    - Multiple : Nu thuc tnh ny c thit lp, nhiu la chn s c chn cng mt lc, ngc li ch c chn mt item.

    Khi s dng Select, chng ta c th dng thm Option

    . .. .. ..

    Bn trong cha cc k t, c th c s dng lng vo Select .

    Cc thuc tnh Option :

    - Disable : nh mt la chn b cm. Khi hin th, chn la ny s b che m.

    - Selected : nh du chn la ny c chn, nu thuc tnh Multiple c bt trong Select, bn c th nh du Selected nhiu chn la cng lc. N dng nh du cc la chn ngm nh.

    - Value : Ch ra gi tr c gn cho la chn, nu khng c th ni dung ca th mc option s c gi i thay cho value.

    c. Input

  • Ban ch o cntt ca c quan ng PHP & MySQL

    36

    M u bng th < Input >, th ny c th dng trong bt c thnh phn no khc ca FORM ngoi tr Texterea v Select.

    Cc thuc tnh :

    - Align : C th l mt trong ba gi tr top, middle, bottom dng cn l nh vi cc vn bn xung quanh, thuc tnh ny ch c ngha vi Type=image .

    - Name : gn tn bin cho d liu ca thnh phn ny. Gi tr ca thuc tnh do user la chn .

    - Type : nh ra mt trong nhng gi tr sau checkbox, hidden, image, password, radio, reset, submit, text, file, bottom .

    - Checked : ch ra mt nt radio, hay mt checkbox c c chn hay khng.

    - Maxlength : ch ra chiu di ti a m hp thoi vn bn c th cha, thuc tnh ny ch c ngha vi input c type=text hay type=password .

    - Size : ch ra kch thc thc s ca hp thoi vn bn.

    IX. Tm lc

    Nh vy, chng ta kho st hu ht cc chc nng c bn ca PHP, t cc kiu d liu, khai bo bin, hng, mng cho ti cch thc hin chng trnh dng My khch/My ch (Client/Server), v nhng cc on m PHP vo cc trang HTML .v.v.

    Nh trn chng ta trnh by, c s d liu cho trang Web l thnh phn khng th thiu, n ng vai tr quyt nh cho chng trnh. V l do , phn tip theo chng ta s kho st ngn ng SQL v cc hm API ca PHP thc hin cc lnh truy vn trn h qun tr c s d liu MySQL.

    X. Cc hm API trong PHP

    1. Gii thiu v MySQL .

    PHP h tr mt s lng ln cc hm lm vic vi c s d liu nh Oracle, Sybase, PostgreSQL, MySQL. .. Thng qua chun ODBC (Open Database Connectivity), bng cch s dng cc hm API (Application

  • Ban ch o cntt ca c quan ng PHP & MySQL

    37

    Programming Interface) m PHP c th lm vic c vi nhiu h qun tr c s d liu nh vy. Nu h qun tr c s d liu khng h tr ODBC ,v hn na ODBC c c im ch h tr dng chun th PHP c th lm vic vi ODBC tng trn. Nu khng mun s dng ODBC ta c th s dng cc hm API .

    Trong phn ny chng ta ch s dng cc hm API lm vic vi h qun tr c s d liu MySQL .

    2. Cc hm c bn lm vic vi c s d liu MySQL.

    a) Cc hm kt ni n MySQL Server

    PHP cung cp hai hm kt ni vi c s d liu MySQL : mysql_connect v mysql_pconnect .

    + mysql_connect () : hm ny s to ra mt lin kt ti my ch MySQL .

    C php :

    int mysql_connect (string [hostname [:port] [:/path_to_socket]], string [username], string [password]);

    Trong :

    - hostname : Tn my ch c s d liu, ni trang web s cha c s d liu. Gi tr ngm nh l localhost

    - :port : a ch cng, ni b my c s d liu lng nghe yu cu. Gi tr ngm nh l :3306 .

    - :/path_to_socket : Cng ging nh :port nhng ch cho h iu hnh UNIX. Gi tr ngm nh l :/tmp/mysql.sock .

    - username : Tn ca ngi s dng c php kt ni vo b my c s d liu.

    - password : Mt khu ca ngi s dng kt ni vo b my c s d liu.

    Hm ny tr v m s nhn dng nu kt ni thnh cng, gi tr 0 (false) nu vic kt ni c li. M s nhn dng ny s c s dng cho tt c cc yu cu ti b my c s d liu sau ny.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    38

    S kt ni ny s ng li khi gi hm mysql_close() hoc kt thc on PHP script.

    + mysql_pconnect() : Hm ny to ra mt lin kt bn vng vi my ch MySQL.

    C php :

    int mysql_pconnect (string [hostname [:port] [:/path_to_socket]], string [username], string [password]);

    Tham s v gi tr tr v ca hm ny cng ging hm mysql_connect(). S khc bit gia hai hm ny l lin kt ti my ch MySQL khng b ng li k c khi kt thc kch bn (script) PHP hay gi hm mysql_close(). Mc ch ca hm ny l lun lun duy tr lin kt ti my ch MySQL do lun c s yu cu ti my ch, trnh cho my ch phi tm kim m s nhn dng mi t gim thi gian truy cp .

    Ch : hm ny ch thc hin c khi PHP c nh cu hnh nh l mt module ca Web server .

    + mysql_close() : Hm ny hu b s kt ni ti my ch MySQL .

    C php :

    int mysql_close(int [link_identifier]);

    Tham s link_identifier l m s nhn dng to ra bi hm mysql_connect(). Hm tr v l True nu thnh cng, ngc li l False .

    b) Cc hm thao tc trn CSDL

    + mysql_create_db() : Hm to c s d liu

    C php :

    int mysql_create_db(string name, int [link_identifier]) ;

    Trong :

    - string name : Tn ca c s d liu cn to.

    - int link_identifier : M s nhn dng c cp bi hm mysql_connect() .

    Chng ta hon ton c th gi cu lnh SQL to c s d liu thng qua hm mysql_query() .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    39

    + mysql_drop_db() : Hm xo c s d liu

    C php :

    int mysql_drop_db(string name, int [link_identifier]);

    Trong :

    - string name : Tn ca c s d liu cn xo .

    - int link_identifier : M s nhn dng c cp bi hm mysql_connect() .

    Chng ta hon ton c th gi cu lnh SQL xo c s d liu thng qua hm mysql_query().

    + mysql_select_db() : Hm cho c s d liu hot ng .

    C php :

    int mysql_select_db(string database_name, int [link_identifier]);

    Trong :

    - database_name : Tn ca c s d liu m sau ny cc hm API khc ca PHP s thc hin trn .

    - int link_identifier : M nhn dng c cp bi hm mysql_connect().

    Cu lnh ny s gn tn c s d liu vi m nhn dng, sau ny khi lm vic vi link_identifier s bao gm c c s d liu c chn .

    c) Cc hm thao tc trn d liu

    + mysql_query() : Hm gi cu lnh SQL ti my ch MySQL .

    C php :

    int mysql_query(string query, [int link_identifier]) ;

    Trong :

    - string query : Cu lnh SQL cn gi ti my ch MySQL .

    - int link_identifier : M s nhn dng, n phi c thc hin trong hm mysql_select_db() trc .

    + mysql_db_query() : Hm gi cu lnh SQL ti my ch MySQL .

    C php :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    40

    int mysql_db_query(string database, string query, int [link_identifier]);

    Trong :

    - string database : Tn c s d liu cu lnh SQL s thc hin trn .

    - string query : Cu lnh SQL cn thc hin .

    - link_identifier : M s nhn dng c cp bi hm mysql_connect()

    Hm ny ch r cu lnh c thc hin trn c s d liu no nn trc khng cn thc hin hm mysql_select_db();

    +mysql_insert_id() :

    Hm ly gi tr c sinh ra t cu truy vn INSERT trc

    C php :

    int mysql_insert_id([link_identifier]) ;

    trong :

    int link_identifier : M s nhn dng c cp bi hm mysql_connect() .

    Hm ny tr v gi tr id c sinh ra trong ct AUTO_INCREMENT bi cu truy vn trc . iu ny ch c tc dng trn link_identifier c ch ra trong hm, nu gi hm trn m khng ch nh tham s link_identifier th lin kt c m cui cng s c ch nh.

    Hm mysql_insert_id() tr v gi tr 0 nu cu truy vn trc khng sinh ra mt gi tr AUTO_INCREMENT. Nu ta mun gi li gi tr cho ln sau, th phi gi hm ny ngay sau cu truy vn sinh ra gi tr .

    + mysql_fetch_row() :

    Hm tr v mt mng l gi tr ca mt bng ghi hin ti vi ch s l s th t ca cc trng (ch s bt u t 0). Sau hm s tr ti bng ghi tip theo cho ti khi gp bng ghi cui cng hm tr v gi tr false. truy xut ti cc gi tr ca ct ta vit : tn_mng[s th t]

    C php :

    array mysql_fetch_row( int result_identifier);

  • Ban ch o cntt ca c quan ng PHP & MySQL

    41

    Trong : result_identifier l m s tr v ca hm mysql_query() hoc mysql_db_query() .

    V d :

    + mysql_fetch_array() :

    Hm tr v mt mng l gi tr ca mt bng ghi hin ti, sau hm s tr ti bng ghi tip theo cho ti khi gp bng ghi cui cng hm tr v gi tr false.

    C php :

    array mysql_fetch_array( int result_identifier [, int result_type] );

    Trong : result_identifier l m s tr v ca hm mysql_query() hoc mysql_db_query() .

    truy xut n cc thnh phn ca ct :

    tn_bin_mng[tn_trng];

    result_type l mt hng s c th nhn cc gi tr sau:

    -MYSQL_NUM : ch tr li mt mng cha cc ch s l s (ging nh hm mysql_fetch_row() )

    -MYSQL_ASSOC: ch tr li mt mng lin kt

  • Ban ch o cntt ca c quan ng PHP & MySQL

    42

    -MYSQL_BOTH : tr li mng cha ng cc ch s gm c cc con s v ch s lin kt .

    Hm ny l s m rng ca hm mysql_fetch_row(). N cho php truy cp trng d liu ca mng kt qu khng ch thng qua cc ch s l cc s m chng c th l tn ca cc trng d liu. iu ny lm cho vic lp trnh n gin v chnh xc hn.

    V d:

    + mysql_fetch_object() : Hm tr v mt i tng l gi tr ca mt bng ghi hin thi. Sau hm s tr ti bng ghi tip theo cho ti khi gp bng ghi cui cng hm tr v gi tr false. truy xut ti cc gi tr ca ct ta vit tn_object->tn_ct .

    C php :

    object mysql_fetch_object(int result_identifier);

    Trong : result_identifier l m s tr v ca hm mysql_query() hoc mysql_db_query() .

    V d :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    43

    +mysql_fetch_assoc() :ly v mt dng kt qu nh l mt mng lin kt .

    c php: array mysql_fetch_assoc(int result_identifier)

    Trong : result_identifier l m s tr v ca hm mysql_query() hoc mysql_db_query() .

    Hm tr v mt mng tng ng vi mt bn ghi c ly v v tr li FALSE nu khng c bn ghi no. Hm ny tng ng vi hm

    array mysql_fetch_array() vi tham s result_type l : MYSQL_ASSOC

    v d :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    44

    +mysql_data_seek()

    Di chuyn con tr bn trong tp kt qu (c c sau khi cu truy vn SELECT c thc hin)

    C php: bool mysql_data_seek(int result_identifier, int row_number);

    Trong : result_identifier l m s tr v ca hm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .

    row_number l ch s ca bn ghi m cn t con tr vo .

    Hm tr v true nu thnh cng, false nu li .

    Hm ny s di chuyn con tr bn trong tp kt qu (c ch r bi tham i result_identifier) n dng c m bng tham i row_number.

    Cc dng trong tp kt qu c bt u t 0

    V d:

  • Ban ch o cntt ca c quan ng PHP & MySQL

    45

    + mysql_num_rows() :tr li s dng trong result_identifier (ni cha kt qu ca cu lnh SQL c thc hin)

    c php: mysql_num_rows(int result_identifier) ;

    Trong : result_identifier l m s tr v ca hm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .

    +mysql_affected_rows()

    c php : int mysql_affected_rows(int [link_identifier]) ;

    Trong :int link_identifier l m s nhn dng, n phi c thc hin trong hm mysql_select_db() trc .

    Hm tr v s dng b tc ng bi mt cu truy vn SQL :INSERT, UPDATE, DELETE trc theo tham s link_identifier. Nu link_identifier khng c ch nh th m kt ni trc s c ch nh.

    Ch :

    - Nu cu lnh SQL trc l DELETE m khng c mnh WHERE th ton b cc bn ghi trong bng b xo nhng hm mysql_affected_rows() s tr v gin tr 0.

    -Hm ny khng c tc dng i vi cu lnh truy vn SELECT. ly c s dng tr v (s dng b tc ng) bi cu lnh SELECT ta dng

    hm mysql_num_rows().

    +mysql_result() : ly d liu t result_identifier

    c php : mixed mysql_result(int result_identifier, int row, mixed [field]);

    Trong : result_identifier l m s tr v ca hm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .

    row l bn ghi m ta s ly d liu

    field l trng trong dng row m ta s ly d liu .

    Cc tham s result_identifier v row phi c, cn tham field l ty chn. Hm s tr li cc ni dung ca dng row v ct field t tp kt qu c ch nh bi bin result_identifier. Nu i s field khng c ch nh r th trng tip theo ca bn ghi s c tr v .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    46

    V d:

    +mysql_free_result() : Hm gii phng vng b nh c lin kt vi result_identifier .

    c php: mysql_free_result(int result_identifier) ;

    Trong : result_identifier l m s tr v ca hm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs() .

    Hm ny ch c dng nu nh bn nh gi thy rng kch bn ca bn s dng qu nhiu b nh khi ang chy. Gi hm ny trn mt trnh x l kt qu s gii phng ton b d liu lin kt trong b nh .

    Ngoi ra cn cc hm khc:

    string mysql_tablename (int result_identifier, int i)

    Hm tr li tn ca bng/csdl ti ch s i trong result_identifier.

    string mysql_field_name (int result_identifier, int field_index)

    Hm tr li tn ca trng ti v tr field_index trong m result_identifier

    int mysql_list_dbs ([int link_identifier])

    Hm tr li mt result_identifier l danh sch bin CSDL trn MySQL Server nu thnh cng, li tr v false .

    int mysql_list_tables (string database [, int link_identifier])

    Hm tr v danh sch tt c cc bng trong mt CSDL MySQL, thnh cng tr v mt result identifier, gi tr false nu c li .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    47

    int mysql_list_fields (string database_name, string table_name [, int link_identifier])

    Hm tr v thng tin lin quan n mt bng d liu.

    int mysql_num_fields (int result_identifier)

    Tr v s trng trong tp kt qu .

    int mysql_num_rows (int result_identifier)

    Tr v s bn ghi trong tp kt qu, hm ny ch c gi i vi cc cu lnh SELECT , ly li s bn ghi c tr li t cc lnh :INSERT, UPDATE hoc DELETE, dng mysql_affected_rows().

    string mysql_field_type (int result_identifier, int field_index)

    Hm tr v kiu d liu ca trng ti v tr field_index trong m result_identifier .

    int mysql_field_len (int result_identifier, int field_offset)

    Hm tr v di ca trng c ch nh thng qua tham s field_offset .

    array mysql_fetch_lengths (int result_identifier)

    tr v mt mng tng ng vi cc di ca mi trng trong bn ghi c ly v bi hm mysql_fetch_row() hoc false nu c li.

    int mysql_errno ([int link_identifier])

    Hm tr v m li t hm thao tc CSDL MySQL trc ,tr v gi tr 0 nu khng c li .

    string mysql_error ([int link_identifier])

    Hm tr v xu thng bo li t hm thao tc CSDL MySQL trc, tr v xu rng nu khng c li .

    object mysql_fetch_field (int result_identifier [, int field_offset])

    Ly thng tin v trng t tp kt qu ri tr li nh mt i tng.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    48

    XI. Session v Cookie

    1. Session l g ?

    HTTP l giao thc khng c xy dng theo cch c th lu gi c trng thi gia hai ln giao dch. Khi mt ngi dng yu cu truy nhp mt trang Web, ri sau ngi dng ny li tip tc yu cu truy nhp i vi trang Web khc th HTTP khng th bit c rng l hai yu cu t cng mt ngi dng.

    tng ca vic iu khin phin lm vic l c th lu vt ca mt ngi dng trong sut mt phin lm vic.

    Nu chng ta lm c iu ny th s d dng cung cp mt truy nhp cho ngi dng, t ta c th lu vt trng thi ca ngi dng v c th thc hin vic mua bn trn mng.

    Session trong PHP c iu khin bi mt gi tr ID duy nht gi l sessionID, gi tr ny s c t ng sinh ra v m ha. SessionID c sinh ra bi PHP v c lu tr pha client trong sut mt phin giao dch. N c th c lu tr trn cc Cookie my ngi dng hay truyn ln cc URL.

    SessionID c tc dng nh mt kho bn c th ng k nhng bin c bit gi l bin session. Ni dung ca nhng bin ny c cha trn Server. SessionID l nhng thng tin ch thy c pha client. Nu ti thi im no ca mt kt ni n trang Web ca bn, sessionID c th thy c trn cookie hay URL, bn c th truy nhp nhng bin session ch trn Server phin lm vic .

    2) Cookie l g ?

    Cookie l nhng mu tin nh m trang script c th cha trn cc my khch (client). Bn c th thit lp mt cookie trn mt my ngi dng bng cch gi mt HTTP header c cha d liu theo dng sau:

    Set-Cookie:Name=VALUE;[expires=DATE;][path=PATH;]

    [domain=DOMAIN_NAME;][secure]

    cu lnh ny s to ra mt cookie c tn gi l NAME vi gi tr l VALUE. Trng expires s thit lp ngy m cookie s ht hiu lc, path v domain c th c s dng ch nh cc URL (ni m cookie s c gi i). T

  • Ban ch o cntt ca c quan ng PHP & MySQL

    49

    kho secure c ngha l cookie s khng gi i trn qu mt kt ni HTTP chun.

    Khi mt browser kt ni ti mt URL, trc tin n kim tra cc cookie c lu tr trn my. Nu c bt k mt cookie no c lin quan n a ch URL va c kt ni, chng s c truyn tr li cho server.

    3) Thit lp cc cookie t PHP

    Ta c th thit lp cc cookie trong PHP bng cch s dng hm:

    int setcookie (string name [,string value [,int expire [,string path [,string domain [, int secure]]]]]);

    Nhng tham i ca hm tng ng vi nhng tham i ca Set-Cookie header trn.

    Nu ta thit lp cookie nh sau:

    setcookie ("TestCookie", "Test Value"); th khi ngi dng n thm trang k tip trong site ca ta (hoc reload trang hin ti) ta s phi truy nhp vo bin vi tn l "TestCookie" c cha gi tr l "Test Value", ta ch c th truy nhp ti n thng qua bin mng $HTTP_COOKIE_VARS [] ca PHP .

    Ta c th xo mt cookie bng cch gi li hm setcookie() vi tham i nh sau:

    tn ca cookie l tn ca cookie cn xo v khng c trng gi tr.

    4) S dng kt hp cookie vi session

    i vi cookie c mt s vn sau y:

    Mt vi webrowser khng th truy cp c ti cc cookie (khng h tr cookie) v mt s ngi dng khng c cc cookie trn browser ca h. y l l do PHP s dng c hai cch thc :cookie v URL method.

    Khi s dng PHP session, ta s khng phi thit lp cc cookie, nhng hm session s lu gi nhng thng tin ny cho chng ta.

    xem ni dung ca cc cookie c thit lp bi session ta s dng hm:

    session_get_cookie_params(). Hm ny s tr v mt mng lin kt m cc phn t ca mng cha cc thng tin nh: lifetime, path, domain,.. .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    50

    thit lp cc tham s cho session cookie ta dng hm:

    void session_set_cookie_params (int lifetime [, string path [, string domain]])

    5) Lu gi sessionID

    PHP s s dng cc cookie mc nh cng vi session. Nu c th c, mt cookie s c thit lp cha SessionID.

    Mt cch s dng cc SessionID trn URL l dch PHP cng vi la chn enable-tran-sid.

    Cch na l ta c th a sessionID vo trong th link. SessionID c cha trong hng SID. lm c iu ny, ta thm vo cui th link hng SID dng n nh l phng thc GET.

    V d:

  • Ban ch o cntt ca c quan ng PHP & MySQL

    51

    Chng ta cng c th bt u mt Session bng cch cu hnh PHP n t ng bt u khi c ai thm trang Web ca ta. iu ny c th lm c nu ta chn session. auto_start trong file c:\Windows\php.ini

    Mt Session cng s c bt u khi ta ng k mt bin Session.

    6.2 ng k nhng bin Session

    cho mt bin c th lu du thng tin t mt trang script ny sang trang script khc, ta cn phi ng k n bng cch gi hm: bool session_register(mixed VarName [,mixed...]);

    Vic ng k ny s lu tr tn bin v ghi gi tr ca bin cho n khi phin giao dch kt thc hoc khi ta hu b (deregister) vic ng k bin .

    V d:

    ng k bin $Var_name ta vit nh sau:

    $Var_name= 5;

    session_register(Var_name);// khng nn s dng k t $ trong ng k mt bin

    6.3 S dng bin Session

    a mt bin Session vo trong phm vi m n c th c s dng, ta cn phi khi to mt Session bng mt trong nhng cch nu trn.

    Sau , ta c th truy cp c nhng bin ny. Nu ng k bin ny l ton cc bng cch s dng hm register_global(), th ta c th truy nhp bin bnh thng thng qua tn bin, v d : $Var_name ; Nu khng khai bo bin l ton cc th ta phi truy nhp nhng bin Session thng qua mng lin kt $HTTP_SESSION_VARS(Var_name);

    kim tra xem mt bin c ng k l bin Session hay cha ta dng hm: bool session_is_registered (string name);

    Hm ny tr v gi tr TRUE nu bin c ng k, ngc li tr v gi tr FALSE.

    Ta cng c th kim tra mt bin c l bin Session bng cch kim tra mng lin kt $HTTP_SESSION_VARS() v s tn ti ca bin.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    52

    6.4 Hu b bin Session v kt thc Session

    Khi mun kt thc mt bin Session, ta c th hu b ng k ca bin bng hm : bool session_unregister (string name) ;

    Trong : name l tn bin ta mun hu ng k (tn ny khng cn c k t $)

    Hm tr v gi tr TRUE nu thnh cng ,ngc li tr v gi tr FALSE. Hm ny ch c th hu ng k ca mt bin Session ti mt thi im.

    hu tt c cc bin Session hin ti, ta dng hm: void session _unset ( ) ;

    kt thc mt Session ta dng hm:s

    bool session_destroy () ;

    Hm ny s xo i SessionID v hy tt c nhng d liu lin quan n Session ny. Hm tr v gi tr TRUE nu thnh cng, ngc li tr v gi tr FALSE. Ta nn hy tt c cc bin Session trc khi kt thc mt Session.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    53

    Chng III : Phng php Fast Template trong PHP

    I. Cc k thut mu ph bin

    Cc mu c th c dng nu nh bn ang thc hin mt site thng xuyn s dng li cc thnh phn .Trong phm vi ca PHP ,cc mu y ni n HTML. Khng dng cc mu ,mt web site phc tp s c cu trc rt nng.

    gii quyt vn trn ,nhiu k thut mu tn ti, nhng c th hu ch trong mt s trng hp. Chng ta gii thiu qua mt s k thut c s dng thng xuyn .

    Name Code/

    HTML mixed

    HTML structure

    Defined in PHP

    Advantages

    Disadvantages Useful for

    Embedded PHP Yes Yes

    Fastand easy

    Leadsto unreadable scrips, noreuse of existing code,hardto maintain

    Quick and

    Smallscripts

    Separating common parts

    Yes No

    Fast and easy,

    Reuseof certain pasts

    Leadsto unreadable scripts, often hard to maintain

    Web sites with LOC < 1000

    FastTemplate No No

    Abstracts HTML completely from coding, easy to adapt to new needs

    Complex Web sites with LOC >

    1000

  • Ban ch o cntt ca c quan ng PHP & MySQL

    54

    Vic s dng cc mu trong cc trnh ng dng

    1. Embedded PHP

    Chng ta c th nhng cc cu lnh PHP vo trong HTML. Mt v d in hnh ca cch thc trn :

    powers

    powers

    i

    i^i

    Phng php ny c dng kh ph bin vi nhng ngi bt u hc lp trnh PHP. Ti mt lc no ,nhng ngi mi lp trnh bng phng php nhng tin ti s thnh tho cc mc cao hn, nhng tht ng tic, cch lp trnh ny li ngn cn iu .

    2. Separating common parts

  • Ban ch o cntt ca c quan ng PHP & MySQL

    55

    Mc d k thut ny c s dng li cc m code/HTML v vic thay i cng d dng hn ,nhng n vn tha hng hu ht cc nhc im ca phng php PHP nhng . Cch lm thng thng l bt u vi cc HTML header v footer, chng c vit thnh cc hm. Cc hm ny c th c gi khi cn n chng v do linh hot hn khi s dng. S thay i cc hm s c phn nh trong tt c cc trng hp. Ta tch v d PHP nhng trn ra hai file .

    Tp prepend.inc cha hai hm :hin th mt HTML header v mt HTML footer .

    \

    Tp main.php s dng tp prepend.inc

  • Ban ch o cntt ca c quan ng PHP & MySQL

    56

    i

    i^i

    3. FastTemplate

    Trong phn ny chng ta cng tm hiu v phng php thit k Web trong PHP l FastTemplate. y l phng php hay, n c gn km vi cc gi ng dng ca PHP, n c xy dng trong tp tin c tn class. FastTemplate.php .

    Mc ch ca phng php ny l gip cho chng trnh vit bng PHP c nhiu giao din khc nhau trn cng mt c s m, v lm gim khi lng cng vic do chng trnh c tch ra lm hai phn : phn vit cc on m (code) v phn thit k giao din cho chng trnh. Phn vit cc on m s tnh ton d liu v th hin trn cc trang HTML thng qua cc bin FastTemplate. Phn giao din s thit k giao din cho chng trnh bng ngn ng HTML. Trong phn ny chng ta c th lng vo trang HTML cc ngn ng nh Java Applet, JavaScript, ... cho trang web thm sinh ng. Vic thm vo trang HTML nhng on m ny khng lm nh hng ti phn on m PHP. Khi , v tr no trn trang web cn th hin cc kt qu tnh ton t on m th s s dng cc bin FastTemplate th hin.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    57

    II. Phng php FastTemplate

    1. Bin FastTemplate

    Bin FastTemplate l g ?

    Cc bin FastTemplate c cu trc nh sau :

    {TEN_BIEN_FASTTEMPLATE}

    Bin c t trong du ng m ngoc nhn, tn bin gia, tn c th l ch hoa hoc ch thng. Tuy nhin trong phn on m PHP bn cng phi vit ging nh vy.

    2. V tr t bin FastTemplate

    Cc bin FastTemplatse c th t bt k u trong trang HTML. N c th l bin th hin thng tin trn cc trang HTML khi c browser hin th hoc cc bin s thm vo cc on m HTML .

    V d : ta t tn tp l : vidu_template.tpl {TITLE} {CONTENT}

    Trong v d trn c hai bin FastTemplate l {TITLE} v {CONTENT}. Bin {CONTENT} s th hin thng tin trn trang web khi c hin th, bin {TITLE} c thm vo nh mt thnh phn ca m HTML .

    3. Mt v d minh ha

    Theo v d trn chng ta c tp vidu_template.tpl, by gi chng ta i xy dng on script sau :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    58

    4. Bn bc cho mt trang web .

    Trong mt script cn thc hin bn bc theo th t sau :

    Bc 1 : Khai bo mt i tng thuc lp FastTemplate

    Bc 2 : Gn cc tp cha m HTML (tp ny c phn m rng khng nht thit l *.htm) cho cc phn t ca mng c nh ngha bi phng thc set_filenames() ( bc ny c gi l nh ngha mt bn cc tp FastTemplate ) .

    Bc 3 : Gn gi tr cho cc bin FastTemplate trong cc tp .

    Bc 4 : Cho hin trang web bng phng thc pparse(tn_trang_web)

    Ch :

    + Bc 2: Trong nh ngha mt bn cc tp FastTemplate c th nhiu tp c gn .

    + Bc 4: Mi ln gi phng thc pparse(); ch c mt tp FastTemplate.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    59

    + Cc bc 1,2,3,4 c th lp li nhiu ln .

    + Th t gi phng thc pparse(); l rt quan trng v n nh hng n cch th hin ca trang web.

    5. Khi FastTemplate

    Thng tin trn trang web c th c th hin di dng bng, vi s hng khng xc nh do FastTemplate c h tr khi FastTemplate. Khi FastTemplate s lp i lp li mt on HTML no khi c nh du khi. Xt v d sau :

    Hy thc hin php tnh 2a vi a = 1, ..., n. Kt qu c th hin bi mt bng gm hai ct, ct gi tr ca a v ct kt qu ca php tnh 2a.

    Chng ta to tp tinh_2_mu.htm

    Tinh 2 mu a Gia tri a Tinh 2 {block.GIATRI}

    {block.KETQUA}

  • Ban ch o cntt ca c quan ng PHP & MySQL

    60

    Ta thy tp ny to mt bng hai hng hai ct, hng trn l tiu ca cc ct, hng di ct th nht l gi tr ca a v ct th hai l kt qu ca php tnh 2a. Hng di c bt u bi kho v kt thc bi kho . Hai kho ny cho bit phn bn trong s b lp (block y l tn kho), cc bin FastTemplate bn trong c dng {tenkhoa.TEN_BEN}.

    on PHP Script s nh sau :

    Kt qu khi chy chng trnh nh hnh v.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    61

    Phn II : H C S D LIU MYSQL Chng I. Gii thiu Ngn ng MySQL

    I. Gii thiu chung MySQL rt phc tp, nhng giao din SQL trc gic v d hc. Trong chng ny chng ta m t khi qut v cc lnh, cc kiu d liu v cc hm m chng ta cn bin s dng Mysql mt cch c hiu qu v c hiu sut cao. Chng ny cung cp tt c cc hm tham kho trong Mysql. s dng chng ny c hiu qu bn c th tm n hng lot cc bng c lit k. Cc u im ca MySQL:

    MySQL l mt h qun tr nh, bo mt, v rt d s dng, thng c s dng cho cc ng dng nh v trung bnh. N c s dng cho cc ng dng client / server vi my ch mnh nh UNIX, Windows NT v Windows 95/98, v c bit trn my ch UNIX .

    MySQL h tr cc im vo l ANSI SQL92 v ODBC mc 0-2 SQL chun.

    MySQL h tr nhiu ngn ng cho vic thng bo li nh : Czec, Dutc, English, Estonian, French, German, Hungarian, Italian, Norwegian Nynorsk, Polish, Portuguese, Spanish and Swedish. Ngn ng c h tr mc nh cho d liu l ISO-8859-1 (Latin1), mun thay i phi sa trong m ngun .

    Ngn ng lp trnh s dng vit cc hm API thm nhp c s d liu MySQL c th l C, Perl, PHP.. .

    Cc bng (table) trong c s d liu MySQL c kch thc rt ln v c lu th mc Datas. Kch thc ln nht ca mt bng ti thiu l 4GB v n cn ph thuc v kch thc ln nht ca mt file do h iu hnh quy nh .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    62

    C s d liu MySQL rt d qun l v c tc x l cao hn ti ba bn ln so vi cc h qun tr c s d liu khc.

    MySQL l mt h qun tr c s d liu m hnh quan h, n c m ngun m. N c cung cp min ph trn cc my ch UNIX, OS/2 v c trn Windows.

    Bn cnh cc u im trn MySQL cng c mt vi nhc im :

    MySQl khng cho php thc hin cc cu lnh SQL select truy vn con. V d : SELECT deptno, ename, sal

    FROM emp x

    WHERE sal > (SELECT AVG(sal)

    FROM emp

    WHERE x.deptno = deptno)

    ORDER BY deptno

    MySQL khng h tr Stored Procedures, Triggers, Transactions, Foreign Keys, v Views nh cc h qun tr c s d liu khc .

    II .Cu trc ngn ng

    1. a ra mt xu v mt s nh th no Mc ny m t nhng cch khc nhau a ra xu v s trong Mysql. mc ny cng bao gm nhiu sc thi v ``gotchas'' iu m bn c th gp khi i su vo cc kiu c bn trong Mysql. 2. Xu

    Xu l mt dy k t, c t trong du nhy n hoc du nhy kp (nu chy trong phng thc ANSI th xu ch c t trong du nhy n) V d: tri nng. cho bui sng. Trong mt xu, c s kt hp ca cc k t to nn cc k t c bit. Mi k t c bit ny bt u bng du cho ngc ( \ ) c xem nh k t escape . Mysql nhn bit cc k t c bit sau: \ 0 : k t 0 trong m ASCII. \ : K t nhy n .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    63

    \ : K t nhy kp . \ b : K t Backspace. \n : K t xung dng mi. \r : K t v u dng . \t : Nhy (tab). \z : K t 26 trong m ASCII. K t ny c th c m ho ng cui file trong Windows. \\ : K t cho ngc \ . \% : K t % . \ _ : K t gch di _ . ch : nu nh s dng k t \% hoc k t gch di \ _ trong mt s trng hp c th tr v \% v \ _ ch khng phi l % v _ . * c mt s cch xu gm c du nhy : - mt du nhy n ( ) nm trong mt xu c nh du bi du

    nhy n th phi vit l: . - mt du nhy kp ( ) nm trong mt xu c nh du bi du

    nhy n th phi vit l: . - c th t k t (\) trc k t nh du . - mt du nhy n trong cp du nhy kp a ra xu cha du nhy

    n, mt du nhy kp trong cp du nhy n a ra xu cha du nhy kp.

    - V d : mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo','\'hello'; ------------------------------------------ | hello | "hello" | ""hello"" | hel'lo | 'hello | ------------------------------------------- mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; ------------------------------------------- | hello | 'hello' | ''hello'' | hel"lo | "hello | ------------------------------------------- mysql> SELECT "This\nIs\nFour\nlines"; -------------------- | This Is Four lines | --------------------

  • Ban ch o cntt ca c quan ng PHP & MySQL

    64

    nu bn mun chn d liu nh phn vo trong ct BLOB. Nhng k t sau phi c th hin di dng nhng k t c bit :

    - NUL : ASCII 0. phi c th hin \ 0 . - \ : ASCII 92. du gch ngc phi c th hin \\ . - :ASCII 39. du nhy n phi c th hin \ . - : ASCII 34. du nhy kp phi c th hin \ . - nu bit m C, c th s dng hm CAPI l Mysql-escape-string()

    ESC k t bng cu lnh INSERT. - Nn s dng hm ESC i vi nhng xu cha k t c bit c lit

    k trn.

    3. S (Numbers) S bao gm s nguyn v s thc . S nguyn c biu din bng mt dy s. Cn s thc s dng du chm phn cch phn thp phn . Du gch di c t trc s ch s m. V d:

    1221 0 32

    V d cho s thc:

    94.42 32032.6809e10 48.00

    ch : s nguyn c s dng trong ng cnh s thc c chuyn thnh s thc c gi tr ngang bng v d : float 0 0.0 float 56 -> 56.0

    Nhng gi tr h Hexa (h 16) Mysql h tr cc gi tr h Hexa. Trong ng cnh s th chng ging nh mt s nguyn. Trong ng cnh xu th chng ging nh mt xu nh phn m mi cp s nguyn Hexa c chuyn thnh mt k t . V d: mysql> SELECT x'FF' -> 255 mysql> SELECT 0xa0; -> 10 mysql> select 0x5061756c; -> Paul

  • Ban ch o cntt ca c quan ng PHP & MySQL

    65

    v d trn khi vit mt s di dng Hexa bn phi in vo vo trc s chui x hoc 0x. C php x xu Hexa da trn ANSISQL, v c php 0x da trn ODBC. Xu h Hexa thng s dng ODBC a gi tr cho ct BLOB C th chuyn mt xu hoc s thnh h Hexa bng hm HEX(). 4. Gi tr NULL

    Gi tr NULL c ngha l khng c d liu(no data) khc vi gi tr 0 i vi kiu s v xu rng i vi kiu xu . Trong khun dng xut hoc nhp File d liu NULL c th c th hin bng \N (nh LOAD DATA INFILE, SELECT...INTO OUTFILE).

    5. Tn ca C s d liu, bng, ch s ct v b danh Tn ca c s d liu, bng, ch s ct v b danh tt c u tun theo mt qui lut chung trong Mysql. Nhng ch rng qui lut ny c thay i bt u vi Mysql Version 3.23.6 khi chng ta da vo li ch thch cho vic nhn bit c s d liu, bng v tn ct vi du . s lm vic nhn ra li ch thch nu bn chy trong ch ANSI .

    nh danh (Identifier)

    di Cc k t cho php

    Database (c s dliu)

    64 Tt c cc k t cho php trong th mc ngoi tr / v .

    Table (Bng)

    64 Tt c cc k t cho php vi tn File ngoi tr / v .

    Column (Ct)

    64 Cho php tt c cc k t

    Alias (Bdanh)

    256 Cho php tt c cc k t

    Ch : bng trn nh danh khng th c k t nh du, ASCII(0) hoc ASCII(255) . Nu nh danh l mt t b hn ch hoc trong c cha cc k t c bit th bn phi s dng du nhy n ch thch khi s dng chng . V d: SELECT * from `select` where `select`.id > 100; Trong phin bn trc ca Mysql, lut t tn nh sau :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    66

    - Mt tn gm cc k t trong bng m, cng cho php k t gch di _ v $.

    - Tn c th bt u bi tt c cc k t hp php, trong thc t tn c th bt u bng mt s (iu ny khc nhiu vi h c s d liu )tuy nhin tn khng ch gm mt s .

    - Khng c s dng k t . Trong tn bi v k t c s dng m rng khun dng truy nhp n ct (xem bng di y).

    Chng ta khng nn dng nhng tn nh 1e bi v mt biu thc nh 1e1th rt m h, n c th c bin dch l mt biu thc 1e1 hoc l s 1e1. Trong Mysql ta c th lin h ti mt ct bng vic s dng nhng cch sau:

    Ct tham chiu ngha

    Col_name Ct col_name t bng s dng trong cu truy vn cha ct vi tn ny.

    Tbl_name.col_name Ct col_name t bng tbl_name ca c s d liu hin thi .

    Db_name.tbl_name. col_name

    Ct col_name t bng tbl_name ca c s d liu Db_name.

    column_name Mt ct c cha k t c bit hoc t kho

    Bn cn phi ch r tbl_name hoc db_name.tbl_name i vi nhng ct c cng tn trong nhiu bng ca c s d liu, hoc bng c cng tn trong cc c s d liu khc nhau trnh s nhp nhng . V d : gi s mi bng T1 ,T2 ch mt ct C bn c th ly C trong mt lnh SELECT s dng c T1 v T2. Trong trng hp ny C nhp nhng bi v n khng duy nht gia cc bng c s dng trong cu lnh. Bn phi ch ra tn bng bng cch vit T1.C hoc T2.C. tng t nu bn ly t mt bng T trong c s d liu DB1 v t bng T trong c s d liu DB2, bn phi tham chiu n ct trong nhng bng nh sau : DB1.T.col_name v DB2.T.col_name. C php .Tbl_name c ngha l bng Tbl_name nm trong c s d liu hin thi .c php ny c chp nhn cho tng thch ODBC bi v mt s chng trnh ODBC thm vo u tn bng mt du chm . 6. Phn bit ch hoa v ch thng i vi tn trong Mysql :

  • Ban ch o cntt ca c quan ng PHP & MySQL

    67

    Trong Mysql tn c s d liu, bng trong Windows th khng phn bit ch hoa v ch thng, cn trong Unix th c phn bit ch hoa v ch thng . Ch : mc d trong windows khng phn bit ch hoa v ch thng, bn cng khng nn dng tn c s d liu, bng vi cc trng hp khc nhau trong cng mt cu truy vn . V d : mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1; cu lnh trn s khng thc hin c . Tn ct khng phn bit ch hoa v ch thng trong tt c cc trng hp . B danh trn bng phn bit ch hoa v ch thng V d: mysql> SELECT col_name FROM tbl_name AS a WHERE a.col_name = 1 OR A.col_name = 2; Cu lnh trn s khng thc hin c v b danh phn bit a v A B danh trn ct s khng phn bit ch hoa v ch thng. Nu bn mun truy vn thc hin c trn bng th chp nhn mt qui c lun lun to ra tn c s d liu v tn bng s dng ch thng. Mt cch trnh vn ny l s bt u mysql vi -0 lower_case_table_names = 1, Theo mc nh ty chn ny l 1 trn Windows v 0 trn Unix. Nu lower_case_table_names l 1 MySQL s chuyn i tt c cc tn bng v ch thng ,Ch rng nu bn thay i ty chn ny, bn cn trc ht chuyn i nhng tn bng c ca bn v ch thng trc khi bt u mysql. 7. Bin ngi s dng Mysql h tr cc bin ring cng vi c php @variable name. Tn bin bao gm k t anpha t tp cc k t v thm vao k t _, $, v . Bin khng phi khi to, NULL khng xut hin trong bin, bin c th cha s nguyn thc hoc gi tr xu. Tt c cc bin s t gii phng vng nh khi chng thot ra. Bn c th gn biu thc vo bin theo c php : @variable:=expr V d: select @t1:=(@t2:=1)@t3:=4,@t1,@t2,@t3; ------------------------------------------------ | @t1:=(@t2:=1)@t3:=4 | @t1 | @t2 | @t3 | ----------------------------------------------- | 5 | 5 | 1 | 4 | ------------------------------------------------ chng ta phi s dng c php:= gn bin, bi v du bng (= ) c s dng so snh .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    68

    bin c th c s dng trong mt biu thc lu rng iu ny khng c s dng trong ng cnh mt s c yu cu r rng nh trong mnh LIMIT ca lnh select hoc mnh IGNORE number LINES ca lnh LOAD DATA . ch : trong lnh SELECT mi biu thc ch nhn mt gi tr khi n c gi cho ngi dng. iu ny cng ng trong mnh HAVING, GROUP BY, ORDER BY. Bn khng th tham chiu ti mt biu thc gm tp hp cc bin trong SELECT. V d: SELECT (@aa:=id) AS a, (@aa3) AS b FROM table_name HAVING b=5; Cu lnh trn khng thc hin cbi v @aa s khng cha gi tr hng hin ti tr phi g tr ca id thay cho ct c chp nhn trc . 8. Cc dng ch thch Mysql cho php chn cc cu ch thch vo trong kch bn ca Mysql, khi thc hin trnh thng dch s b qua tt c cc on vn bn l cu ch thch Trong Mysql ch thch c t sau du : # dng ch thch

    -- dng ch thch cch vit ny ch c tc dng trn mt dng . dng cp k hiu sau : /* ....*/ chn cc cu ch thch, loi ch thch ny c gi l ch thch khi . v d: mysql> select 11; # ch thch trn mt dng mysql> select 11; -- ch thch trn mt dng mysql> select 1 /* ch thch khi*/ 1; mysql> select 1 /* ch thch trn nhiu dng ch thch khi */ 1; lu rng ch thch yu cu bn phi c t nht mt du cch sau --! Mc d vy c vi hn ch trong cch ghi ch \*..*\ l:

    - k t nhy n v nhy i dng ch s bt u ca mt xu thm ch s dng bn trong mt ch thch nu trong ch thch du nhy th nht khng ph hp vi du nhy th hai th h phn tch s khng nhn ra im kt thc ca ghi ch.

    - du chm phy ( ; ) c dng bo kt thc ca mt cu lnh Mysql v sau du ( ; ) l s bt u ca cu lnh tip theo.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    69

    Chng II. Cc thnh phn ca My SQL Trong phn ny chng ta gii thiu khi qut v cc kiu d liu ca cc trng va cc thuc tnh v kiu trong mi loi d liu.Sau l mt s kiu bng trong MySQL v cui cng l mt s hm c bn c cung cp bi MySQL. I. Cc kiu d liu

    Trong MySQL c cc kiu d liu sau: Kiu s Kiu k t (char,varchar,Blob,Text,Enum,Set) Kiu xu. Kiu ngy gi (Datetime,Date,TimeStamp,Time,year) 1. Kiu s Kiu tinyint: Khai bo TINYINT[Cm] [UNSGNED] [ZEROFIU].y l kiu s nguyn vi gi tr rt nh: -Nu khai bo vi t kho nusigned th gi tr m ct c kiu ny c th nm trong khong 0 n 255. -Nu khng c t kha nusiged th gi tr trong khong 128 n 127 Kiu Smallint Khai bo:Smallint [Cm] [nusiged] [zerofill].y l kiu s nguyn c gi tr nh: -Nu l s c du th gi tr nm trong khong-32768 n 32767 -Nu l s khng du th gi tr trong khong 0 n 65536. Kiu Mediumint Khai bo :Mediumint [cm] [nusiged] [zerofill] [(m)] -Nuc du th gi tr nm trong khong 8388608 n 8388607. -Nu l s c du th gi tr nm trong khong 0 n 16777215. Kiu Int: Khai bo:Int:[Cm] [nusiged] [zerofill] -Vi s c du gi tr trong khong 2147483648 n 2147483647 -Vi s khng du gi tr trong khong 0 n 429467295 Kiu Interger Khai bo:interger [Cm] [nusiged] [zerofill].Tng t kiu INT.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    70

    Kiu Bigint Khai bo :Bigint [Cm] [nusiged] [zerofill].y l kiu nguyn m gi tr l rt ln. -Vi s c du gi tr trong khong 9223372036854775808 n 9223372036854775807. -Vi s khng du gi tr trong khong 0 n 18446744073709551615 Note:tt c cc php ton s hc s dng s c du bigint hoc double, v vy khng s dng s khng du ,m gi tr vt qu s nguyn ln tc l nu nhn hai s nguyn ln th gi tr tr v s vt qu s nguyn ln c du. Kiu float: Khai bo:float (precision)[zerofill].i vi s thc chnh xc n th chnh xc

  • Ban ch o cntt ca c quan ng PHP & MySQL

    71

    2069 -Gi tr nm trong khong 70-99 c chuyn sang nm 1970-1999. l v gi tr nm ta ch hai ch s, cn hai s trc mc nh l nm 1900. lm cho khng nhm ln nm th phI cung cp gi tr nm l bn s.MySQL lm iu ny. Kiu datetime: y l kiu ngy gi c dng khi bn cn lu tr thng tin c v ngy thng v thi gian.Gi tr ca n nm trong khong 1000-01-10:00:00 n 9999-12-3123:59:59 MySQL hin th datatime theo nh dng: yyyy-mm-dd hh:mm:ss nhng n cng cho php n nh gi tr cho kiu ny bng dng s hoc xu. Kiu Date c dng khi bn ch cn lu tr gi tr ngy thng. MySQL truy xut v hin th gi tr DATE vi nh dng yyyy-mm-dd Gi tr trong khong 1000-01-01 n 9999-12-31c th n inh bng s hoc xu. Kiu TIMESTAMP [Cm] Cung cp 1 kiu m bn c th dng nh du mt cch t ng i vi php INSERT hoc UPDATE cng vi ngy gi hin ti.Nu c nhiu ct TIMESTAMP th ch ct u tin c cp nht mt cch t ng. cp nht vo ct u nh vy cng phi tho mn cc iu kin sau: -Ct m cha c xc nh chi tit trong mnh INSERT hocLOADDATAINFILE -Ct m khng xc nh chi tit trong lnh UPDATE v mt s ct khc thay i gi tr -Bn t chi tit ct TIMESTAMP l ngy gi hin ti bng cch n nh gi tr NULL Cc ct khc c th c t thi gian v ngy thng hin ti.Ch c vi ct gi tr NULL hoc NOW.Gi tr ca TIMESTAMP l t 1970-01-01:00:00:00.n nm 2037 th MySQL hin th TIMESTAMP theo nh dng yyyy mm dd hh mm ss yyyy mm dd hh mm ss.MySQL cng cho php s dng bng xu hoc s. Kiu TIME MySQL nh dng gi tr thi gian l hh:mm:ss hoc HHH:MM:SS Nguyn nhn m phn gi c th ln hn ti v kiu TIME khng ch biu din thi gian trong 1ngy (gi phi 24 hoc thm ch l m).Gi tr ca

  • Ban ch o cntt ca c quan ng PHP & MySQL

    72

    n trong khong -838:59:59 ti 838:59:59 Kiu YEAR C th nh dng bi hai hoc bn ch s, gi tr nm trong khong 1901 n 2155 vi bn ch s. Vi hai s th mc nh t 00-69 l 2000-2069 ,70 n 99 l 1970-1999 3.Kiu k t (String) Kiu char: di ct char l c nh khi bn to bng. Gi tr di trong khong 0-255 nu s k t in vo nh hn di quy nh th n s t ng in vo k t trng. Trong MySQL kiu char cho php bn to mt ct c dng char(0),iu ny cng thun tin trong trng hp bn phi tun theo vi s phn mm c n ph thuc v s tn ti ca mt ct m khng thc s cn s dng gi tr. Cng tt trong trng hp bn cn nh ngha mt ct sao cho n c th nhn hai gi tr mt ct khai bo char(0) n c th chim mt bit v c th nhn hai gi tr NULL hoc Kiu Varchar [national] varchar(m)[binary]. y l ct c khai bo vi mt xu c di khng c nh nhng k t trng s c hu khi lu tr gi tr, m nm trong khong 1-255.

    value Char(4)Storage require

    d Varchar

    Storage require

    d 4bytes 1bytes

    ab ab 4bytes ab 3bytesabcd abcd 4bytes abcd 5bytes

    abcdefgh abcd 4bytes abcd 5bytes Kiu Blob v TEXT -BLOB l i tng nh phn ln c th cha lng rt ln cc d liu vi 4 kiu BLOB:TINYBLOB, BLOB, MEDIUMBLOB v LONGBLOB.C 4 kiu TEXT l TINYTEXT,TEXT, MEDIUMTEXT, v LONGTEXT TINYBLOB,TINYTEXT:c rng ti a l255 Blob v Text di ti a l 65535 k t. Mediumblob,mediumtext: di ti a 16777125 k t. Longblob,longtext: di ti a 424967295 k t.

  • Ban ch o cntt ca c quan ng PHP & MySQL

    73

    Ch : M hnh client/server gii hn bi 16Mb. Mt gi giao tip trn mt hng nn khng th s dng ton b phm vi ca kiu ny. Kiu ENUM(value1,value2,..)(kiu lit k). Mt i tng xu ch c th c 1 gi tr chn t mt danh sch cc gi tr value1,value2,..null hoc k t c bit. Mt kiu lit k c gi tr ln nht l 65535 gi tr. Kiu tp hp set(value1,value2,..) mt i tng xu c th nhn 0 hoc nhiu hn mi loi c th chn t danh sch cc gi tr :value1,value2, .. Mt tp hp c ti a 64 thnh phn. Gi tr null ngha l khng c d liu,n khc gi tr 0 v xu rng. Gi tr null c th c k hiu bi \n cho vic truy xut file dng text.

    4 .Ct ch s. Tt c cc kiu ct ca MySQL c th c ch s ho .Vic dng ch s ho trn cc ct c lin quan vi nhau l cch tt nht ci tin vic thc hin ca cu lnh Select. Mt bng c th c ti 16 ct ch s, di ch s ti a l 256 bytes ,mc d c th thay i khi bin dch MySQL. i vi ct kiu char v varchar bn c th ch s ho phn u ca ct.Nh vy s nhanh hn v cn t khng gian a hn l ch s ho trong c ct.C php dng trong mnh CREATE TABLE nh sau: KEY index_name(colname(length)). V d sau s to mt ch s ho cho 10 k t u ca ct tn: MySQL>CREATE TABLE test( Name char(200)not NULL KEY index_name(name(10))) i vi ct kiu BLOB v TEXT, bn phi ch s ho mt phn u ca ct, khng th ch s ho c ct c. To ch s trn nhiu ct. MySQL c th to ch s trn nhiu ct. Mt vic ch s ho c th ln ti 15 ct(trn ct char v varchar bn c th ch s ho phn u ca ct nh mt phn ca vic ch s ho). Vic ch s ho nhiu ct c xem nh mt mng c sp xp m cha cc gi tr c to bi vic kt ni cc gi tr gia cc ct c ch s ho . Mysql s dng ch s ho nhiu ct nh l cch truy vn nhanh hn khi bn xc nh c s lng ln thng tin ca ct u tin ca sp xp trong mt cu lnh WHERE, thm ch nu bn

  • Ban ch o cntt ca c quan ng PHP & MySQL

    74

    khng xc nh gi tr i vi cc ct khc th thng tin ly c vn chnh xc . V d : Mysql> CREATE TABLE test( Id int NOT NULL, Last_name char(30)NOT NULL, First_name char(30)NOT NULL, PRIMARY KEY(id), INDEX name(Last_name, First_name); Khi tn s c ch s thng qua 2 ct Last_name, First_name. Vic ch s s c p dng cho vic truy vn n cc gi tr c th trong phm vi ca ct last_name hoc c Last_name v First_name. Do , ct tn s c dng trong truy vn di y: Mysql>SELECT* FROM test WHERE last_name=Lan; Mysql>SELECT* FROM test WHERE last_name=Lan AND first_name=Nguyn; Mysql>SELECT* FROM test WHERE last_name=Lan AND(first_name=Nguyn)OR(first_name=L) Mysql>SELECT* FROM test WHERE last_name=Lan; AND(first_name>=L)AND(first_nameSELECT* from test WHERE last_name=Lan Mysql>SELECT* from test WHERE last_name=Lan OR(first_name=Nguyn) S dng cc kiu ct t nhng b my CSDL khc y l cch to ra mt cch d dng c s dng m SQL cho cc h qun tr CSDL khc c c s l SQL.y chnh l nh x kiu t CSDL khc sang kiu tng ng bn MySQL,do d dng chuyn bng t CSDL khc sang bng c kiu trong MySQL .

  • Ban ch o cntt ca c quan ng PHP & MySQL

    75

    Kiu cc thnh phn khc Kiu trong mySQL Binary(num) Char(num)binary Char varyfing(num) Varchar(num) Float4 Float Float8 double Int1 Tinyint Int2 Smallint Int3 Mediumint Int4 Int Int8 Bigint Long Varbinaryint mediumBlob Long Varchar mediumText

    Midleint Mediumint Varbinary Varchar(num)Bynary Nu bn to bng vi kiu s dng l ca b my CSDL khc th khi a ra lnh :DISCRIBE tbl_name,khi Mysql s ghi li cu trc bng ny vi kiu tng ng trong Mysql.

    5.Cc kiu bng trong MySQL Trong Mysql c 4 kiu bng khc nhau ,c th to nhiu kiu bng vi

    cu lnh CREATE TABLE: Kiu bng MyISAM(indexsequential acces method):y l kiu bng mc nh c to ra khi bn dng lnh Create,n l c s trong m lnh ISAM v c mt s s m rng hu dng to ra file vi phn m rng .MYI Kiu bng MyHeap:Cc bng kiu ny c lu tr trong b nh ,vic ch s ho ca chng c thc hin bi hm bm,v vy m tc thc hin ca bng kiu ny cc k nhanh,nhng n phI tr gi rt t ,v d liu ca ta b mt .V vy bng ny ch dng tm thi ,bn c th ch ra s hng ti a trong cu lnh Create table .Kiu bng ny c th chim gn ht b nh ca bn ,v vy khng th s dng cc ct kiu blob,text hoc auto_increment. Bng kiu BDB:Cc bng kiu ny l nhng giao dch an ton ,chng c cung cp cc lnh COMMIT,ROOLBACK,cc bng kiu ny hot ng chm hn cc bng c kiu MyISAM

  • Ban ch o cntt ca c quan ng PHP & MySQL

    76

    Bng kiu Merge:y l kiu bng mi ,m lnh cho kiu bng ny mi ang phin bn bta,tuy nhin n s nhanh chng n nh ,y chnh l bng ISAM nhng chng ch c chn la mt bng ,ch c insert,update,delete mt bng m bn chn ,nu bn mun xo bng ch cn ch nh xo merge.Bng kiu ny gip x l cc vn sau ,d qun l v tch ra thnh nhiu bng khc nhau ,nng cao tc x l ,vic tm kim s hiu qu hn.

    II. Cc hm trong MySQL Hm dng trong cu lnh SELECT v WHERE 1. Hm nhm. Mysql>select 12*3 ->7 Mysql>select (12)*3 ->9 2. Cc php ton x l thng thng Cng : Mysql>select 35 ->8 Tr : Mysql>select 3-5 ->-2 Nhn: Mysql>select 3*5 ->15 Chia:Mysql>select 3/5 ->0.6 Mysql>select 3/0 ->NULL 3. Php ton thao tc vi bit S bit ti a l 64 bits Php AND Mysql>select 29&15; ->13 Php OR: Mysql>select 29\15; ->31 Dch trI: Mysql>select 1

  • Ban ch o cntt ca c quan ng PHP & MySQL

    77

    Mysql>select 4>>2; ->1 4. Php ton lgic Cc php and(&),or(::),not(!).Cc gi tr tr v l 0 hoc 1 tng ng ng hoc sai V d: Mysql>select not 1; ->0 5. Cc php so snh(>=,>,6x; ->0 Mysql>SELECT 7>6x; ->1 Mysql>SELECT 1=x6; ->1 Mysql>SELECT 1 is NULL,0 IS NULL,NULL IS NULL ->0 0 1 php ton BETWEEN: expr BETWEEN min AND max Mysql>select 1BETWEEN 2 AND 3; ->0 Mysql>select bBETWEEN a AND c; ->1 Mysql>select 2BETWEEN 2 AND x-3; ->0 Php ton in,not in(value1,)

  • Ban ch o cntt ca c quan ng PHP & MySQL

    78

    mysql>select 2 IN (0,4,dfdg); ->0 mysql>select dfdg IN (0,4,dfdg); ->1 Php ton ISNULL mysql>select ISNULL(11); ->0 mysql>select ISNULL(1/0); ->1

    6. Cc hm so snh xu i vi cc hm so snh xu th c phn bit ch hoa ,ch thng expr LIKE pat[ESCAPE escape-char] gi tr tr v c th l s hoc xu,vi hm ny c th dng hai k t i din l %,- %: gi tr tr v c th l s cc k t -: gi tr ph hp ch l mt k t Tng t ta s c hm NOT LIKE: NOT (expr LIKE pat[ESCAPE escape-char]) V d : mysql>select h LIKE h\-; ->1 mysql>select 10 LIKE 1%; ->1 Hm STRCMP(expr1,expr2):tr v 0 nu 2 xu nh nhau ,-1 nu i s u nh hn i s hai theo th t sp xp ,ngoI ra th bng 1 mysql>select STRCMP (text1,text2); ->-1 mysql>select STRCMP (text1,text); ->1 mysql>select STRCMP (text1,text1); ->0 Php ton cast mysql>select a=A; ->1 mysql>select BINARY a=A; ->0

    Hm IF(expr1,expr2,expr3)

  • Ban ch o cntt ca c quan ng PHP & MySQL

    79

    Tng ng vi hm if kp trong ngn ng C,nu expr1 ng th hm nhn gi tr expr2,ngc li th nhn gi tr expr3 V d:

    Mysql>select IF(14

    Mysql>select IF(1>2,yes,no); ->no gi tr tr v c th l kiu s hoc xu tu theo ng cnh ph hp .

    7. Cc hm ton hc.

    -ABS(x): gi tr tuyt i ca x mysql>select ABS(-3); ->3 mysql>select ABS(3); ->3 -SIGN(X): Du ca biu thc trong ngoc ,tr li 0 nu X=0,-1 nu X0 mysql>select (3-5); ->-1 mysql>select (0); ->0 mysql>select (3); ->1 -MOD(N,M):ly phn d ca php chia n cho m mysql>select MOD(30,6); ->0 mysql>select 13%6; ->1 -ROUND(X):Ly phn nguyn gn X nht -exp(x),log(x),log10(x) -POW(x,y):x m y Tng t ta c cc hm ton hc khc nh: sin(x),cos(x),tan(x),asin(x),acos(x),atan(x),rand();

    8. Cc hm x l xu: -Char(N,) hm tr v dy cc k t c m ACCSI c lit k trong ngoc

    VD: mysql>select CHAR(77,121,83,81,76);

  • Ban ch o cntt ca c quan ng PHP & MySQL

    80

    ->MySQL mysql> select CHAR(77,77.3,77.3);

    ->MMM

    -Hm ghp 2 xu : CONCAT(str1,str2,)

    vd : mysql> select CONCAT(MY,S,QL); ->MYSQL mysql> select CONCAT(MY,NULL,QL); ->NULL

    mysql> select CONCAT(12.5); ->12.5

    -CONCAT_WS(separator,str1,str2..) mysql> select CONCAT_WS(,,first name,last name); ->first name,last name mysql> select CONCAT_WS(,,first name,NULL,last name); ->first name,last name

    -Cc hm v dI ca xu : LENGTH(str) 0CTET_LENGTH(str) CHAR_LENGTH(str) CHARACTER_LENGTH(str) Mysql>select LENGTH(text); ->4 mysql>select 0CTET_LENGTH(text) -Cc hm nh v xu con LOCATE(substr,str) POSITION(substr IN str) Mysql>select LOCATE(nam,phngnam); ->7

    Mysql>select LOCATE(nama,phngnam); ->0

    NgoI ra trong Mysql cn rt nhiu cc hm lin quan n vic x l xu khc nhng khng lit k y .Ta s sang chng mi

  • Ban ch o cntt ca c quan ng PHP & MySQL

    81

    CHNG III. CC LNH THAO TC VI CSDL

    I. Cc lnh thao tc vi CSDL

    1. Lnh to CSDL

    C php :CREATE DATABASE[if not exists] db_name; To ra CSDL nh l to mt th mc m trong c cc file,y ch l to th mc ch cha c file,m cc file y l cc bng.Vy ta s phi c cu lnh to bng CREATE DATABASE IF NOT EXISTS NHANSU; Cu lnh trn s to ra mt CSDL tn NHANSU,nhng cha c bn no c to ra. T kho if not exists nu c ch ra s trnh c mt li pht sinh nu nh trn my c c s d liu ny ri. 2. Lnh xo CSDL. C php:Drop Database [if esists]db_name. Cu lnh ny s xo tt c cc bng trong c s d liu v xo lun c c s d liu c tn l DB_NAME. V d:Drop Database [if eists] NHANSU Nu bn thc hin xo mt c s d liu vi kt ni c s d liu th c CSDL ngun v kt ni s b xo.Bn phI rt cn thn i vi lnh ny,n s xo th mc vi tn ca CSDL v tt c cc file vi cc phn m rng nh sau: .BAK .DAT .HSH .ISD .ISM .ISM .MRG .MYD

    .MYI .DR .FRM Trong cc phin bn 3.22 hoc c hn ta c th ch nh t kho if esists ngn mt li xut hin nu nh CSDL cha c trn a.

    II. Cc lnh thao tc trn bng v x l i vi bng.

    1. Lnh to bng.

    C php: CREAT{TEMPORARY}TABLE{IF NOT ESISTS} Tbl_name [(creat_definition,)] [table_options] [select_statement]

  • Ban ch o cntt ca c quan ng PHP & MySQL

    82

    Lnh s to ra mt bng trong c s d liu hin ti nu c s d liu cha tn ti th s c li pht sinh.Trong phin bn Mysql3.2.2 hoc mun hn tn bng c th c ch nh r l db_name.table_name trong trng hp ny my s thc hin m khng quan tm ti vic c s d liu c tn ti hay khng. Trong : Tbl_name l tn bng cn to table_options :ch ra kiu ca bng cn to v nhng c tnh ca bng cn to table_options ={ISAM | MYISAM | HEAP | MERGE} or AUTO_INCREMENT=#:Gi tr tip theo m bn mun t cho bng or AUTO_ROW_LENGTH=#:Gi tr trung bnh dI ca hng trong bng or COMMENT=string:li bnh lun ti a 60 k t or MAX_ROWS=# s hng ti a m bn nh lu tr creat_definition:c nh ngha nh sau: creat_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value] { AUTO_INCREMENT} [PRIMARY KEY}{reference_definition] or PRIMARY KEY (index_col_name,) or KEY [index_name] (index_col_name,) or INDEX [index_name] (index_col_name,) or UNIQUE {INDEX} [index_name] (index_col_name,) or FULLTEXT {INDEX} [index_name] (index_col_name,) or {CONSTRANINT symbol] FOREIGN KEY index_name ((index_col_name,) [reference_defintion] or CHECK (expr) type:Kiu ca ct c to trong bng REFERENCES tab_name [(index_col_name,)] [MATCHFULL | MATCHPARTIAL] [ON DELETE reference_option ] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT