SinhVienIT.net LaptrinhPHPvaMySQL

Embed Size (px)

Citation preview

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    1/115

    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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    2/115

    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, vc pht trin t nm 1994 bi Rasmus Lerdorf. Lc u ch l mt b ct Perl, c s dng lu du vt ngi dng trn cc trang web. Sau ,Rasmus Lerdorf pht trin PHP nhl mt my c t (Scripting engine).

    Vo gia nm 1997, PHP c pht trin nhanh chng trong s yu thchca nhiu ngi. PHP khng cn l mt d n c nhn ca RasmusLerdorf v tr thnh mt cng ngh web quan trng. Zeev Suraski vAndi Gutmans hon thin vic phn tch c php cho ngn ng rithng 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 chnhthc, 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 HypertextPreProcesor.

    2. Ti sao phi s dng PHP

    Nhchng ta bit, c rt nhiu trang web c xy dng bi ngnng HTML (HyperText Markup Language). y ch l nhng trang webtnh, ngha l chng ch cha ng mt ni dung c th vi nhng dng vnbn 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 cnti c s d liu. Cc trang ng dng nhvy c gi l trang web ng,bi v ni dung ca chng lun thay i ty thuc vo d liu v ngi sdng. PHP l ngn ng lm c nhng iu nh vy. Bng cch chychng trnh PHP trn my ch Web server, bn c th to ra cc ng dng

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    3/115

    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 gil trang web ng.

    Chng ta hy xem xt cch hot ng

    ca trang web c vit bng ngn ng HTMLv PHP nhth no.

    Vi cc trang HTML :

    Khi c yu cu ti mt trang web t

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

    + c yu cu t pha browser,

    + Tm trang web trn server.+ Gi trang web tr li chobrowser (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 sai ni dung ca trang.+ Gi tr li ni dung cho browser (y l trang HTMLc th hin th c bi trnh duyt Internet Explorer

    hoc trnh duyt no ).

    Tm li, s khc nhau gia HTML v PHPl 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 tbrowser+ Tm file.htm trn server

    + Gi li cfile.htm cho browser

    Request

    http://domain/file.htm

    Web server

    +c yu cu tbrowser

    + Tm trang web(file.php) trn server+ Thc hin cc on m PHP+ Gi trli ni dung cho browser

    Request

    http://domain/file.php

    Kt xut

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    4/115

    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 thngc 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 ktni vi nhiu ngn ng khc m ODBC h tr.

    -PHP cung cp mt h thng thvin phong ph : Do PHP ngay t uc thit k nhm mc ch xy dng v pht trin cc ng dng trnweb nn PHP cung cp rt nhiu hm xy dng sn gip thc hin cccng vic rt d dng : gi, nhn mail ,lm vic vi cc cookie, v nhiuth khc na .

    -PHP l mt ngn ng rt d dng, d hc v n gin hn nhiu so vicc ngn ng khc nhPerl, Java. Nu bn bit ngn ng C th mivic s hon ton thun li .

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

    -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 cnc cc kiu d liu khc (nhng khng phi cc kiu d liu c bn) nharrays (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 tti + 2 t. Kiu Double l kiu s thc ,phm vi biu din (10-30810308).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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    5/115

    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 gitr 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 sNL. Hng s ny l mt th ngt dng trong HTML.

    Chng ta s s dng cc hng s trong PHP nhsau :

    echo (Employment at . COMPANY. NL);

    Cch vit trn cng ging nhcc vit sau:

    echo (Employment at Phops Bicycles
    \n);

    Ch : hng s phi ngoi hai du v . Trng hp sau l khng chiu lc : echo (Employment at COMPANY NL);. Khi thc hin n s chokt 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);

    }

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    6/115

    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: ccbin 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.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    7/115

    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 lnhng 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 nhsau :

    $str = 222B Baker Street;

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

    $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 cachui l s .

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

    $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 scn thit chng ta mi phi dng cch trn.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    8/115

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    9/115

    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 sgi tr bng 0 c coi l rng, bin kiu string c coi l rng nu xu lxu 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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    10/115

    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 nhbng 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;

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    11/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    11

    + Bng cc php ton quan h

    Phpton

    ngha V d Gii thich

    ==

    =

    !=

    So snh bng

    So snh nh hn

    So snh ln hn

    Nh hn hocbng

    Ln hn hoc

    bngSo snh khc

    So snh khc

    $h ==$i

    $h < $i

    $h > $i

    $h $i

    $h != $i

    $h $i

    Kim tra $h v $i c bng nhaukhng

    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 khngKim tra $h c khc $i khng

    Cc php so snh thng dng kim tra iu kin trong cc cu lnhiu 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 thclogic 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 .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    12/115

    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 nhsau:

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

    c th chn mt bin vo trong hng c kiu string th tn binphi 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 nhsau :

    & 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 bittrong $a b dch phi i n v tr. Tng t ta c php dch tri .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    13/115

    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 lnmt n v.

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

    ++ $a : $a tng ri mi

    c s dng- Php gim : tng t nhphp 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 ;

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    14/115

    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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    15/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    15

    + Nu lng else bng lng If th else thuc v If gn nhttheo 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 nhttheo tng cp t trong ra ngoi.

    V d :

    Tng ng vi :

    * Cu lnh 2 ca dng 2 l elseif :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    16/115

    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;

    ...

    elsecu_lnh n;

    C th vit li nhsau: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;...

    elsecu_lnh n;

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

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

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

    2. Cu lnh switch :

    switch(biu_thc n){

    casen1:cu lnh 1;break;

    casen2:cu lnh 2;break;

    ...casenn:

    cu lnh nn;[default: cu lnh]

    }

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    17/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    17

    Cu lnh switchl cu lnh r nhnh c iu kin trong thchin mt trong n ci r nhnh.

    +Nu biu_thc n = ni (i = 1, .. n) th cu lnh sau case nic

    thc hin cho n khi gp lnh break hoc du ngoc }+Nu biu_thc n != mi ni (i = 1, .. n) m c nhnhDefaultth

    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 forl 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.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    18/115

    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 nhaumt 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 2th cu lnh lun c thc hin. Mc d vng mt vn phi c du chmphy (;)

    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 ;

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    19/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    19

    Lnh whilel mt lnh to chu trnh c iu kin. iu kin thc hinc 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 cvit 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;

    }

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    20/115

    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... whilel lnh to chu trnh c iu kin, trong iu kinthc 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 caswitch, while, do ... while, for .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    21/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    21

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

    7. Lnh continue

    L lnh r nhnh khng iu kin .Lnh thng dng bt u limt chu trnh mi trong cc lnh for, while, do ... while m khng cn thchin 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 khaibo tin x l includev 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 hinti khi bin dch, cc trang ny dng khai bo cc bin, cc hng shay cc on m n gin khng c vng lp. Khi include cho phpthc hin cc cu lnh phc tp c cu lnh to chu trnh. N ch sdng cc hm nhnhng hm ngoi ca chng trnh.

    V. Hm trong PHP

    1. Quy tc xy dng hm

    functiontn_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.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    22/115

    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 lbin 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 cnkhai bo globaltrc 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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    23/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    23

    Ta c th vit nhtrn 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 khcnhau v ch s (cc ch s ny tng dn t 0 n n). Vi ngn ng lp trnhC, cc phn t ca mng c cng kiu d liu ,nhng vi PHP th mm dohn. 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 nhta 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 thc khai bo nh sau :

    $countries[50] = cr;

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    24/115

    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 mngcng thm mt. Ngoi ra cng c th khai bo mng mt chiu bng culnh array

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

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

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

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

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

    $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 mngmt chiu khng ch l cc s nguyn m cn l xu k t. Ta c th khaibo nhsau :

    $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,

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    25/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    25

    cr => Costa Rica,

    de => Germany,

    uk => United Kingdom,

    us => United States);

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    26/115

    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 scc 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 thdng hm next() - hm next() tr v l 1 (true) nu phn t tip theo

    khng phi l phn t cui cng, ng

    c li l 0 (false) v prev() - hmprev() cho gi tr tr v l 1 (true) nu phn t tip theo khng phi lphn t u tin, ngc li l 0 (false). Hm key () s cho bit ch s vhm 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 nhsau :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    27/115

    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 nhsau :

    $countries[Europs] $countries[North America]

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

    de uk ca cr us

    Cng ging nhmng mt chiu ta s dng vng lp nhfor, 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

    - ukNorth America :

    - ca

    - cr

    - us

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    28/115

    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 loimng 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 spxp 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 () spxp mng theo chiu tng dn v gim dn. Nu bn dng cc hm sort() vrsort() th cc ch s c kiu string s chuyn thnh cc ch s c kiunguyn.

    $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;

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    29/115

    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); ktqu s l

    Chi so 0 bang CanadaChi 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 hmksort() 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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    30/115

    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 ph

    ng thc v thuc tnh cho lp .Gi s mun nh ngha lp Sesssion chng ta lm nhsau :

    nh ngha thuc tnh cho lp chng ta t t kho vartrc thuctnh .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    31/115

    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 thckhc.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    32/115

    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 tont newnhsau :

    Welcome to my website,

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    33/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    33

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    34/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    34

    - Thuc tnh method : Method c th c gn bng GET hocPOST ,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 sgi i. Gi tr ngm nh l application/x-www-form-urlencode.

    Trong mt trang chng ta c th s dng nhiu FORM nhng khngc 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 phic.

    - 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 vnbn theo kch thc ca hp vn bn) trong hp thoi. Nu wrap=off, chcnng 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 nhngkhng c gi i cng FORM. Nu wrap=physical, chc nng ny cngc bt v hot ng nhtrn nhng k t newline c gi i cng viFORM.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    35/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    35

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

    V d:

    .. .

    b. Select

    c bt u bng th v kt thc bng th , cpth ny c th lng trong FORM hay bt k thnh phn no ca FORMngoi 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. Thuctnh ny c th khng c.

    - Multiple : Nu thuc tnh ny c thit lp, nhiu la chn s cchn 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 bche m.

    - Selected : nh du chn la ny

    c chn, nu thuc tnhMultiple c bt trong Select, bn c th nh du Selected nhiu chn lacng lc. N dng nh du cc la chn ngm nh.

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

    c. Input

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    36/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    36

    M u bng th < Input >, th ny c th dng trong bt c thnhphn 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 viType=image .

    - Name : gn tn bin cho d liu ca thnh phn ny. Gi tr cathuc 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 haykhng.

    - 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

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

    Nhtrn chng ta trnh by, c s d liu cho trang Web l thnhphn 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 caPHP 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 nhOracle, Sybase, PostgreSQL, MySQL. .. Thng qua chun ODBC (OpenDatabase Connectivity), bng cch s dng cc hm API (Application

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    37/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    37

    Programming Interface) m PHP c th lm vic c vi nhiu h qun trc s d liu nhvy. Nu h qun tr c s d liu khng h tr ODBC ,vhn na ODBC c c im ch h tr dng chun th PHP c th lm vicvi ODBC tng trn. Nu khng mun s dng ODBC ta c th s dngcc hm API .

    Trong phn ny chng ta ch s dng cc hm API lm vic vi hqun 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 sd liu. Gi tr ngm nh l localhost

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

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

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

    - password : Mt khu ca ngi s dng kt ni vo b my c sd 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 ttc cc yu cu ti b my c s d liu sau ny.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    38/115

    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 thcon 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 hmmysql_connect(). S khc bit gia hai hm ny l lin kt ti my chMySQL khng b ng li k c khi kt thc kch bn (script) PHP hay gihm 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 phitm 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 hmmysql_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 hmmysql_connect() .

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    39/115

    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 hmmysql_connect() .

    Chng ta hon ton c th gi cu lnh SQL xo c s d liu thngqua 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 APIkhc 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 :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    40/115

    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 nntrc 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 hmmysql_connect() .

    Hm ny tr v gi tr id c sinh ra trong ct AUTO_INCREMENTbi 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_identifierth 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 sinhra 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 tr

    ng (ch s bt u t 0). Sau hm s tr ti bng ghitip theo cho ti khi gp bng ghi cui cng hm tr v gi tr false. truyxut ti cc gi tr ca ct ta vit : tn_mng[s th t]

    C php :

    array mysql_fetch_row( int result_identifier);

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    41/115

    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 vgi 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 (gingnhhm mysql_fetch_row() )

    -MYSQL_ASSOC: ch tr li mt mng lin kt

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    42/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    42

    -MYSQL_BOTH : tr li mng cha ng cc ch s gm c cc cons 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 sm chng c th l tn ca cc trng d liu. iu ny lm cho vic lptrnh n gin v chnh xc hn.

    V d:

    + mysql_fetch_object() :Hm tr v mt i tng l gi tr ca mt bng ghihin thi. Sau hm s tr ti bng ghi tip theo cho ti khi gp bng ghi cuicng hm tr v gi tr false. truy xut ti cc gi tr ca ct ta vittn_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 :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    43/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    43

    +mysql_fetch_assoc() :ly v mt dng kt qu nhl mt mng linkt .

    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 liFALSE nu khng c bn ghi no. Hm ny tng ng vi hm

    array mysql_fetch_array() vi tham s result_type l : MYSQL_ASSOCv d :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    44/115

    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 vnSELECT 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 bitham 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:

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    45/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    45

    + mysql_num_rows() :tr li s dng trong result_identifier (ni cha ktqu 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 hintrong 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. Nulink_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 thton 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 cs 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 quc 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 .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    46/115

    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 nhbn nh gi thy rng kch bn cabn s dng qu nhiu b nh khi ang chy. Gi hm ny trn mt trnh xl 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 Servernu 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 cngtr v mt result identifier, gi tr false nu c li .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    47/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    47

    int mysql_list_fields(string database_name, string table_name [, intlink_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 lnhSELECT , ly li s bn ghi c tr li t cc lnh :INSERT, UPDATEhoc 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 mresult_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 cly 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 nukhng c li .

    string mysql_error([int link_identifier])

    Hm tr v xu thng bo li t hm thao tc CSDL MySQL trc, tr vxu 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.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    48/115

    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 ctrng thi gia hai ln giao dch. Khi mt ngi dng yu cu truy nhp mttrang Web, ri sau ngi dng ny li tip tc yu cu truy nhp i vitrang Web khc th HTTP khng th bit c rng l hai yu cu t cngmt ngi dng.

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

    Nu chng ta lm c iu ny th s d dng cung cp mt truy nhp chongi 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 lsessionID, gi tr ny s c t ng sinh ra v m ha. SessionID csinh 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 ccURL.

    SessionID c tc dng nhmt kho bn c th ng k nhng bin cbit 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 imno ca mt kt ni n trang Web ca bn, sessionID c th thy ctrn cookie hay URL, bn c th truy nhp nhng bin session ch trnServer 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 cchgi 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 domainc th c s dng ch nh cc URL (ni m cookie s c gi i). T

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    49/115

    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 HTTPchun.

    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 chURL 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 [,stringdomain [, int secure]]]]]);

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

    Nu ta thit lp cookie nhsau:

    setcookie ("TestCookie", "Test Value");th khi ngi dng n thm trang k tip trong site ca ta (hoc reload tranghin ti) ta s phi truy nhp vo bin vi tn l "TestCookie" c cha gi trl "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 nhsau:

    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 trcookie) v mt s ngi dng khng c cc cookie trn browser ca h. yl 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 hmsession s lu gi nhng thng tin ny cho chng ta.

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

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    50/115

    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 [, stringdomain]])

    5) Lu gi sessionIDPHP s s dng cc cookie mc nh cng vi session. Nu c th c, mtcookie s c thit lp cha SessionID.

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

    Cch na l ta c th a sessionID vo trong th link. SessionID c chatrong hng SID. lm c iu ny, ta thm vo cui th link hng SID

    dng n nh

    l ph

    ng thc GET.V d:

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    51/115

    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 tng bt u khi c ai thm trang Web ca ta. iu ny c th lm cnu 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 trangscript 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 phingiao dch kt thc hoc khi ta hu b (deregister) vic ng k bin .

    V d: ng k bin $Var_name ta vit nhsau:

    $Var_name= 5;

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

    6.3 S dng bin Session

    a mt bin Session vo trong phm vi m n c th c s dng, ta cnphi 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 lton cc bng cch s dng hm register_global(), th ta c th truy nhpbin 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 Sessionthng 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 vgi tr FALSE.

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    52/115

    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 kt $)

    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 nSession ny. Hm tr v gi tr TRUE nu thnh cng, ngc li tr v gi trFALSE.Ta nn hy tt c cc bin Session trc khi kt thc mt Session.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    53/115

    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 sitethng 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 phctp s c cu trc rt nng.

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

    Name

    Code/

    HTMLmixed

    HTMLstructure

    Definedin PHP

    AdvantagesDisadvantages Useful for

    EmbeddedPHP

    Yes Yes Fastandeasy

    Leadsto unreadable

    scrips, noreuse ofexisting code,hardtomaintain

    Quick andSmallscripts

    Separatingcommonparts

    Yes No

    Fast andeasy,

    Reuseofcertain pasts

    Leadsto unreadablescripts, often hardto maintain

    Web siteswith LOC

    1000

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    54/115

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    55/115

    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 icng d dng hn ,nhng n vn tha hng hu ht cc nhc im caphng 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 chngv do linh hot hn khi s dng. S thay i cc hm s c phnnh 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 HTMLfooter .

    \

    Tp main.php s dng tp prepend.inc

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    56/115

    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 kWeb 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 ctn class. FastTemplate.php .

    Mc ch ca phng php ny l gip cho chng trnh vit bng PHPc nhiu giao din khc nhau trn cng mt c s m, v lm gim khilng cng vic do chng trnh c tch ra lm hai phn : phn vitcc on m (code) v phn thit k giao din cho chng trnh. Phnvit cc on m s tnh ton d liu v th hin trn cc trang HTMLthng qua cc bin FastTemplate. Phn giao din s thit k giao dincho chng trnh bng ngn ng HTML. Trong phn ny chng ta c th

    lng vo trang HTML cc ngn ng nhJava Applet, JavaScript, ... chotrang web thm sinh ng. Vic thm vo trang HTML nhng on mny khng lm nh hng ti phn on m PHP. Khi , v tr notrn trang web cn th hin cc kt qu tnh ton t on m th s sdng cc bin FastTemplate th hin.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    57/115

    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 nhsau :

    {TEN_BIEN_FASTTEMPLATE}

    Bin c t trong du ng m ngoc nhn, tn bin gia, tn c thl ch hoa hoc ch thng. Tuy nhin trong phn on m PHP bncng phi vit ging nhvy.

    2. V tr t bin FastTemplate

    Cc bin FastTemplatse c th t bt k u trong trang HTML. Nc th l bin th hin thng tin trn cc trang HTML khi c browser hinth 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 khic hin th, bin {TITLE} c thm vo nhmt 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 tai xy dng on script sau :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    58/115

    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 FastTemplateBc 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 phngthc set_filenames() ( bc ny c gi l nh ngha mt bn cc tpFastTemplate ) .

    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 thnhiu tp c gn .

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    59/115

    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 hngn cch th hin ca trang web.

    5. Khi FastTemplate

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

    Hy thc hin php tnh 2avi 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.htmTinh 2 mu a

    Gia tri a

    Tinh 2

    {block.GIATRI}

    {block.KETQUA}

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    60/115

    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 cacc ct, hng di ct th nht l gi tr ca a v ct th hai l kt qu caphp tnh 2a. Hng di c bt u bi kho v ktthc bi kho . Hai kho ny cho bit phn bn trong s blp (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 nhhnh v.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    61/115

    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. Trongchng ny chng ta m t khi qut v cc lnh, cc kiu d liu v cchm m chng ta cn bin s dng Mysql mt cch c hiu qu v chiu sut cao.Chng ny cung cp tt c cc hm tham kho trong Mysql. s dngchng ny c hiu qu bn c th tm n hng lot cc bng c litk.Cc u im ca MySQL:

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

    MySQL h tr cc im vo l ANSI SQL92 v ODBC mc 0-2SQL 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 sd liu MySQL c th l C, Perl, PHP.. .

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    62/115

    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 tiba 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 vncon. V d : SELECT deptno, ename, sal

    FROM emp x

    WHERE sal > (SELECT AVG(sal)

    FROM empWHERE x.deptno = deptno)

    ORDER BY deptno

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

    II .Cu trc ngn ng

    1. a ra mt xu v mt s nhth noMc ny m t nhng cch khc nhau a ra xu v s trong Mysql. mcny cng bao gm nhiu sc thi v ``gotchas'' iu m bn c th gp khi isu vo cc kiu c bn trong Mysql.

    2. XuXu 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 dunhy 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. Mik t c bit ny bt u bng du cho ngc ( \ ) c xem nhk tescape .Mysql nhn bit cc k t c bit sau:

    \ 0 : k t 0 trong m ASCII.\ : K t nhy n .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    63/115

    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 nhs dng k t \% hoc k t gch di \ _ trong mt strng 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 dunhy 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";--------------------| ThisIsFourlines |--------------------

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    64/115

    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 tsau 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:

    1221032

    V d cho s thc:

    94.42

    32032.6809e1048.00ch : s nguyn c s dng trong ng cnh s thc c chuynthnh s thc c gi tr ngang bngv d : float 00.0

    float 56 -> 56.0Nhng gi tr h Hexa (h 16)

    Mysql h tr cc gi tr h Hexa. Trong ng cnh s th chng gingnhmt s nguyn. Trong ng cnh xu th chng ging nhmt xu nhphn m mi cp s nguyn Hexa c chuyn thnh mt k t .

    V d:mysql> SELECT x'FF'

    -> 255mysql> SELECT 0xa0;

    -> 10mysql> select 0x5061756c;

    -> Paul

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    65/115

    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 cphp 0x da trn ODBC. Xu h Hexa thng s dng ODBC a gi trcho ct BLOB C th chuyn mt xu hoc s thnh h Hexa bng hm

    HEX().

    4. Gi tr NULLGi tr NULL c ngha l khng c d liu(no data) khc vi gi tr0 i vi kiu s v xu rng i vi kiu xu .Trong khun dng xut hoc nhp File d liu NULL c th c thhin bng \N (nhLOAD 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 theomt 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 voli 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 mcngoi tr / v .

    Table(Bng)

    64 Tt c cc k t cho php vi tn File ngoitr / 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 tc bit th bn phi s dng du nhy n ch thch khi s dngchng .V d: SELECT * from `select` where `select`.id > 100;Trong phin bn trc ca Mysql, lut t tn nhsau :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    66/115

    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 cth 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 nh1e1th rt m h, n c th c bin dch l mt biu thc 1e1 hoc ls 1e1.Trong Mysql ta c th lin h ti mt ct bng vic s dng nhng cchsau:

    Ct tham chiu nghaCol_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_nameCt col_name t bng tbl_name ca c s d liuDb_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 ccng tn trong nhiu bng ca c s d liu, hoc bng c cng tn trong ccc 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 mtlnh SELECT s dng c T1 v T2. Trong trng hp ny C nhp nhng biv n khng duy nht gia cc bng c s dng trong cu lnh. Bn phich ra tn bng bng cch vit T1.C hoc T2.C. tng t nu bn ly t mtbng T trong c s d liu DB1 v t bng T trong c s d liu DB2, bnphi tham chiu n ct trong nhng bng nhsau : DB1.T.col_name vDB2.T.col_name.C php .Tbl_name c ngha l bng Tbl_name nm trong c s d liu hinthi .c php ny c chp nhn cho tng thch ODBC bi v mt schng trnh ODBC thm vo u tn bng mt du chm .

    6.Phn bit ch hoa v ch thng i vi tn trong Mysql :

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    67/115

    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 chhoa 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, bncng 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 thngV 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 AB 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 quic 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 trnWindows v 0 trn Unix. Nu lower_case_table_names l 1 MySQL schuyn i tt c cc tn bng v ch thng ,Ch rng nu bn thay ity chn ny, bn cn trc ht chuyn i nhng tn bng c ca bn vch 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 baogm k t anpha ttp cc k t v thm vao k t _, $, v .Bin khng phi khi to, NULL khng xut hin trong bin, bin c thcha s nguyn thc hoc gi tr xu. Tt c cc bin s t gii phng vngnh khi chng thot ra.Bn c th gn biu thc vo bin theo c php : @variable:=exprV 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 sdng so snh .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    68/115

    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 khngc 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 lnhLOAD DATA .

    ch : trong lnh SELECT mi biu thc ch nhn mt gi tr khi n

    cgi cho ngi dng. iu ny cng ng trong mnh HAVING, GROUPBY, ORDER BY. Bn khng th tham chiu ti mt biu thc gm tp hpcc 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 hnghin 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, khithc hin trnh thng dch s b qua tt c cc on vn bn l cu ch thchTrong Mysql ch thch c t sau du : # dng ch thch

    -- dng ch thchcch vit ny ch c tc dng trn mt dng .dng cp k hiu sau : /* ....*/ chn cc cu ch thch, loi ch thch nyc gi l ch thch khi .v d: mysql> select 11; # ch thch trn mt dngmysql> select 11; -- ch thch trn mt dngmysql> select 1 /* ch thch khi*/ 1;

    mysql> select 1/*ch thch trn nhiu dngch 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 thmch 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 khngnhn ra im kt thc ca ghi ch.

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    69/115

    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 cacc 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 bnc cung cp bi MySQL.

    I. Cc kiu d liu

    Trong MySQL c cc kiu d liu sau:Kiu sKiu k t (char,varchar,Blob,Text,Enum,Set)Kiu xu.Kiu ngy gi (Datetime,Date,TimeStamp,Time,year)

    1. Kiu sKiu tinyint:Khai bo TINYINT[Cm] [UNSGNED] [ZEROFIU].y l kiu snguyn vi gi tr rt nh:

    -Nu khai bo vi t kho nusigned th gi tr m ct c kiuny c th nm trong khong 0 n 255.

    -Nu khng c t kha nusiged th gi tr trong khong 128n 127Kiu SmallintKhai bo:Smallint [Cm] [nusiged] [zerofill].y l kiu s nguyn cgi 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 MediumintKhai bo :Mediumint [cm] [nusiged] [zerofill] [(m)]

    -Nuc du th gi tr nm trong khong 8388608 n8388607.

    -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 IntergerKhai bo:interger [Cm] [nusiged] [zerofill].Tng t kiu INT.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    70/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    70

    Kiu BigintKhai bo :Bigint [Cm] [nusiged] [zerofill].y l kiu nguyn m gitr l rt ln.

    -Vi s c du gi tr trong khong

    9223372036854775808 n 9223372036854775807.-Vi s khng du gi tr trong khong 0 n18446744073709551615Note: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 lntc l nu nhn hai s nguyn ln th gi tr tr v s vt qu snguyn ln c du.Kiu float:Khai bo:float (precision)[zerofill].i vi s thc chnh xc nth chnh xc

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    71/115

    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 cpgi tr nm l bn s.MySQL lm iu ny.Kiu datetime: y l kiu ngy gi c dng khi bn cn lu trthng tin c v ngy thng v thi gian.Gi tr ca n nm trongkhong 1000-01-10:00:00 n 9999-12-3123:59:59MySQL hin th datatime theo nh dng:yyyy-mm-dd hh:mm:ss nhng n cng cho php n nh gi tr chokiu 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-ddGi tr trong khong 1000-01-01 n 9999-12-31c th ninh bng s hoc xu.Kiu TIMESTAMP [Cm]Cung cp 1 kiu m bn c th dng nh du mt cch t ngi vi php INSERT hoc UPDATE cng vi ngy gi hin ti.Nuc nhiu ct TIMESTAMP th ch ct u tin c cp nht mt ccht ng.

    cp nht vo ct u nhvy cng phi tho mn cc iukin sau:

    -Ct m cha c xc nh chi tit trong mnh INSERThocLOADDATAINFILE

    -Ct m khng xc nh chi tit trong lnh UPDATE v mt sct khc thay i gi tr

    -Bn t chi tit ct TIMESTAMP l ngy gi hin ti bngcch n nh gi tr NULLCc ct khc c th c t thi gian v ngy thng hin ti.Ch cvi 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 theonh dng yyyy mm dd hh mm ss

    yyyy mm dd hh mm ss.MySQL cng cho php s dng bng xuhoc s.Kiu TIMEMySQL nh dng gi tr thi gian l hh:mm:ss hoc HHH:MM:SSNguyn nhn m phn gi c th ln hn ti v kiu TIME khng chbiu din thi gian trong 1ngy (gi phi 24 hoc thm ch l m).Gi tr ca

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    72/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    72

    n trong khong -838:59:59 ti 838:59:59Kiu YEARC th nh dng bi hai hoc bn ch s, gi tr nm trong khong1901 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 ditrong khong 0-255 nu s k t in vo nh hn di quy nh thn 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 theovi s phn mm c n ph thuc v s tn ti ca mt ct m khngthc s cn s dng gi tr. Cng tt trong trng hp bn cn nhngha mt ct sao cho n c th nhn hai gi tr mt ct khai bochar(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 bovi mt xu c di khng c nh nhng k t trng s c hukhi lu tr gi tr, m nm trong khong 1-255.

    value Char(4)Storagerequire

    dVarchar

    Storagerequire

    d 4bytes 1bytes

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

    abcdefgh abcd 4bytes abcd 5bytesKiu Blob v TEXT

    -BLOB l i tng nh phn ln c th cha lng rt ln ccd liu vi 4 kiu BLOB:TINYBLOB, BLOB, MEDIUMBLOB vLONGBLOB.C 4 kiu TEXT l TINYTEXT,TEXT,MEDIUMTEXT, v LONGTEXTTINYBLOB,TINYTEXT:c rng ti a l255Blob 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.

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    73/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    73

    Ch : M hnh client/server gii hn bi 16Mb. Mt gi giao tiptrn 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 cth 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 0hoc 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 filedng text.

    4 .Ct ch s.

    Tt c cc kiu ct ca MySQL c th c ch s ho .Vic dng chs ho trn cc ct c lin quan vi nhau l cch tt nht ci tinvic thc hin ca cu lnh Select.

    Mt bng c th c ti 16 ct ch s, di ch s ti a l 256bytes ,mc d c th thay i khi bin dch MySQL.

    i vi ct kiu char v varchar bn c th ch s ho phn uca ct.Nhvy s nhanh hn v cn t khng gian a hn l ch sho trong c ct.C php dng trong mnh CREATE TABLE nhsau:

    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 NULLKEY index_name(name(10)))i vi ct kiu BLOB v TEXT, bn phi ch s ho mt phn uca 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 cth ln ti 15 ct(trn ct char v varchar bn c th ch s ho phnu ca ct nhmt phn ca vic ch s ho).

    Vic ch s ho nhiu ct c xem nhmt mng c spxp m cha cc gi tr c to bi vic kt ni cc gi tr gia ccct c ch s ho .

    Mysql s dng ch s ho nhiu ct nhl cch truy vnnhanh hn khi bn xc nh c s lng ln thng tin ca ctu tin ca sp xp trong mt cu lnh WHERE, thm ch nu bn

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    74/115

    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 vnchnh 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=LanAND 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=LanOR(first_name=Nguyn)

    S dng cc kiu ct t nhng b my CSDL khcy 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 kiut CSDL khc sang kiu tng ng bn MySQL,do d dngchuyn bng t CSDL khc sang bng c kiu trong MySQL .

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    75/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    75

    Kiu cc thnh phn khc Kiu trong mySQLBinary(num) Char(num)binaryChar varyfing(num) Varchar(num)

    Float4 FloatFloat8 doubleInt1 TinyintInt2 SmallintInt3 MediumintInt4 IntInt8 BigintLong Varbinaryint mediumBlobLong Varchar mediumText

    Midleint MediumintVarbinary Varchar(num)Bynary

    Nu bn to bng vi kiu s dng l ca b my CSDL khc th khia ra lnh :DISCRIBE tbl_name,khi Mysql s ghi li cu trcbng 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 lnhCREATE TABLE:

    Kiu bng MyISAM(indexsequential acces method):y l kiubng mc nh c to ra khi bn dng lnh Create,n l c s trongm lnh ISAM v c mt s s m rng hu dng to ra file vi phnm rng .MYI

    Kiu bng MyHeap:Cc bng kiu ny c lu tr trong bnh ,vic ch s ho ca chng c thc hin bi hm bm,v vy mtc thc hin ca bng kiu ny cc k nhanh,nhng n phI tr girt 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 .Kiubng ny c th chim gn ht b nh ca bn ,v vy khng th sdng 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 kiuny hot ng chm hn cc bng c kiu MyISAM

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    76/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    76

    Bng kiu Merge:y l kiu bng mi ,m lnh cho kiu bngny 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 caotc x l ,vic tm kim s hiu qu hn.

    II. Cc hm trong MySQLHm 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 thngCng : Mysql>select 35

    ->8Tr : Mysql>select 3-5

    ->-2Nhn: Mysql>select 3*5

    ->15Chia:Mysql>select 3/5

    ->0.6Mysql>select 3/0

    ->NULL

    3. Php ton thao tc vi bitS bit ti a l 64 bitsPhp AND

    Mysql>select 29&15;

    ->13Php OR:Mysql>select 29\15;->31

    Dch trI:Mysql>select 1

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    77/115

    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 ngng hoc saiV 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 maxMysql>select 1BETWEEN 2 AND 3;

    ->0Mysql>select bBETWEEN a AND c;

    ->1Mysql>select 2BETWEEN 2 AND x-3;

    ->0Php ton in,not in(value1,)

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    78/115

    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 ISNULLmysql>select ISNULL(11);->0

    mysql>select ISNULL(1/0);->1

    6. Cc hm so snh xui 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[ESCAPEescape-char])

    V d : mysql>select h LIKE h\-;->1mysql>select 10 LIKE 1%;->1

    Hm STRCMP(expr1,expr2):tr v 0 nu 2 xu nhnhau ,-1 nu is u nh hn i s hai theo th t sp xp ,ngoI ra th bng 1

    mysql>select STRCMP (text1,text2);->-1mysql>select STRCMP (text1,text);->1mysql>select STRCMP (text1,text1);->0

    Php ton castmysql>select a=A;

    ->1mysql>select BINARY a=A;

    ->0Hm IF(expr1,expr2,expr3)

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    79/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    79

    Tng ng vi hm if kp trong ngn ng C,nu expr1 ngth hm nhn gi tr expr2,ngc li th nhn gi trexpr3

    V d:

    Mysql>select IF(14Mysql>select IF(1>2,yes,no);

    ->nogi 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 nuX0

    mysql>select (3-5);->-1

    mysql>select (0);->0

    mysql>select (3);

    ->1-MOD(N,M):ly phn dca 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 yTng 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 trongngoc

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    80/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    80

    ->MySQLmysql> select CHAR(77,77.3,77.3);

    ->MMM

    -Hm ghp 2 xu :CONCAT(str1,str2,)vd : mysql> select CONCAT(MY,S,QL);

    ->MYSQLmysql> select CONCAT(MY,NULL,QL);

    ->NULLmysql> 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,lastname);->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);

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

    ->0

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

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    81/115

    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 CSDLC php :CREATE DATABASE[if not exists] db_name;

    To ra CSDL nhl to mt thmc m trong c cc file,y chl to thmc ch cha c file,m cc file y l cc bng.Vy ta s phic 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 nhtrn 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 sd liu c tn l DB_NAME.V d:Drop Database [if eists] NHANSUNu 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,ns xo thmc vi tn ca CSDL v tt c cc file vi cc phn m rng nhsau:

    .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 ifesists ngn mt li xut hin nu nhCSDL 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]

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    82/115

    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 liucha tn ti th s c li pht sinh.Trong phin bn Mysql3.2.2 hocmun hn tn bng c th c ch nh r l db_name.table_nametrong 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 totable_options :ch ra kiu ca bng cn to v nhng c tnh ca bngcn totable_options ={ISAM | MYISAM | HEAP | MERGE}or AUTO_INCREMENT=#:Gi tr tip theo m bn mun t chobngor AUTO_ROW_LENGTH=#:Gi tr trung bnh dI ca hngtrong bng

    or COMMENT=string:li bnh lun ti a 60 k tor MAX_ROWS=# s hng ti a m bn nh lu trcreat_definition:c nh ngha nhsau:creat_definition:col_name type [NOT NULL | NULL] [DEFAULTdefault_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 bngREFERENCES tab_name [(index_col_name,)][MATCHFULL | MATCHPARTIAL]

    [ON DELETE reference_option ][ON UPDATE reference_option]reference_option:RESTRICT | CASCADE | SET NULL | NO ACTION | SETDEFAULT

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    83/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    83

    Trong phin bn 3.23 bn c th s dng t kho temporary khito mt bng,bng tm ny s t ng c xo khi kt thc mtphin lm vic .NOT NULL: Nu ct c ch nh l NOT NULL th khi nhp liu ta

    bt buc phI nhp d liu cho ct ny .NULL :i vi ct kiu timestamp s c s khc bit v gi tr NULLso vi nhng ct c nhng kiu khc,bn khng th a ra gi trNULL vi ct c kiu timestamp nu t l NULL th n s t ngt ngy gi hin ti,bi v ct c kiu stamp s dng cch thc nynn thuc tnh NULL hoc NOT NULL s khng c t nhnhngct thng thng v n s c l I nu bn ch nh Iu ny .DEFAULT:ct ny s t ng c t l gi trngm nh nu nhta b qua khng nhp giv tr cho ct ny .Gi trngm nh phI l hng s theo ngha l ta khng th t gi tr mc

    nh cho ct l gi tr tr v ca mt hm ,nu ct c khai bo lNOT NULL th gi tr ngm nh s ph thuc kiu ca ctNu khng t DEFAULT-AUTO_INCREMENT:ch c i vi ct s nguyn ct ny s tng c tng khi nhp d liu .Nu bn xo mt hng cha gi trln nht ca ct auto_increment th gi tr ny s dng li cho lnnhp liu sau (Iu ny ch xy ra i vi bng loi ISAM m khngxy i vi bng MYISAM)ch :Mi hng ch c mt ct t l auto_increment v phI c tl ch s

    -UNIQUE KEY:y l kho ca bng n ch c th nhn mt gi trnht nh,s c li nu nhta chn vo mt hng ca bng gi tr khotrng vi kho ca hng tn ti .-PRIMARY KEY:nh ngha kho chnh ca bng,l kho duy nhtvi rng buc rng tt c cc gi tr kho u phI t NOT NULLmi bng ch c th c mt kho chnh.-FOREIGN KEY :kho ngoi dng lm kho chnh ca bng khc-Mnh SELECT :Nu c thm mnh SELECT sau cu lnhCREATE TABLE th Mysql s to cc trng mi cho tt c cc thnhphn nm trong cu lnh SELECT

    V d ta to bng hosinhCREATE TABLE HOCSINH(,

    Mahs char(5) NOT NULL,PRIMARY KEY,Hoten varchar(35),Ngaysinh date,Quequan varchar(40));

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    84/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    84

    By gi ta to bng SINHVIEN gm c mt trng masv v cctrng hoten,quequan,ngaysinh ly t bng HOCSINH:

    CREATE TABLE SINHVIEN(,Masv char(5) NOT NULL PRIMARY KEY,

    SELECT hoten,ngaysinh,quequan from HOCSINH);Mi bng tbl_name s c thay bi mt s file trong thmc c sd liu ,nu kiu bng l MYISAM bn s thu c cc file sau khithc hin lnh to bng

    Tn file Chc nngTbl_name.frm file nh dng bngTbl_name.Myd file cha d liu

    Tbl_name.MyI file ch s

    2. Lnh sa cu trc bng

    C php :ALTER[IGNORE] TABLE tbl_namealter_spec[,alter_spec...] alter_specification :ADD[COLUMN] create_definition[FIRST |AFTER colum_name]Or ADD[COLUMN] (create_definition, create_definition,..)Or ADD INDEX[index_name] (index_col_name,..)Or ADD PRIMARY KEY(index_col_name,..)Or ADD UNIQUE[index_name](index_col_name,..)Or ADD FULLTEXT[index_name](index_col_name,..)OR ADD[CONSTRAIN symbol] FOREIGN KEY index_name(index_col_name)

    [referent_definition]or ALTER[COLUM] col_name{SET DEFAULT literal |DROPDEFAULT}OR CHANGE[COLUM] old_col_name create_definitionOr MODIFY[COLUMN] create_definitionOR DROP[COLUMN] column_nameOR DROP PRIMARY KEYOR DROP INDEX index_nameOr RENAME[TO] new_tbl_nameOr table_options

    Lnh ALTER TABLE cho php bn sa cu trc ca mt bng c,v d bn c th thm hoc xo ct,to hoc hu ch s,thay ikiu ca ct c ,hoc i tn ct hoc i tn bng ,bn c th thayi li ch thch cho bng hoc kiu ca bng .

    Nu s dng lnh ALTER TABLE thay i mt ct cch nh r nhng DESCRIPE tbl_name ch ra rng ct khng th thayi ,c ngha l Mysql b qua s thay i ny do mt l do no .V

  • 8/10/2019 SinhVienIT.net LaptrinhPHPvaMySQL

    85/115

    Ban ch o cntt ca c quan ng PHP & MySQL

    85

    d n