Professional Documents
Culture Documents
C nh Phúc
Hi u tr ng tr ng i h c à N ng
Ch nhi m khoa Công Ngh Thông Tin
Thông tin liên h : canhphuc@yahoo.com và canhphucvn@hotmail.com
Trình bày và hi u ính: Mr. CEO/pcdinh, Ch t ch kh i liên minh quân s B c i Tây D ng NATO
I.PHP là gì?
PHP là m t ngôn ng l p trình ki u script, ch y trên Server và tr v mã HTML cho trình duy t. PHP g n
nh ã tr thành m t ngôn ng l p trình Web r t ph bi n trên m ng hi n nay. PHP là ch vi t t t c a c m t
"PHP Hypertext Preprocessor", t m d ch là ngôn ng ti n x lí các siêu v n b n. Các mã l nh PHP c nhúng
vào các trang web, các trang này th ng có ph n m r ng là .php, .php3, .php4. Khi client g i yêu c u "c n t i
các trang này v " n web server, u tiên web server s phân tích và thi hành các mã l nh PHP c nhúng
trong, sau ó tr v m t trang web k t qu ã c x lí cho client.
B n có th h i, t i sau có nhi u tu! ch n nh ASP, Cold Fusion, Perl, Java, Python nh ng chúng ta l i
ch n PHP? Và câu tr l i là: b i nó là m t ngôn ng r t d" dùng, d" h c, cú pháp l nh n gi n, các bi n không
c n ph i khai báo tr #c khi dùng, t ng ép ki u(typecast), ch y nhanh, t p hàm built-in r t phong phú, có mã
ngu$n m …
III.Các ki u d li u:
PHP h( tr tám ki u d li u nguyên thu . B n ki u thông th ng là: boolean, integer, floating-point
number(float), string. Hai ki u ph'c t p là: m ng( array) và i t ng ( object). Và cu i cùng là hai ki u &c
bi t : resource và NULL. Lo i d li u c a bi n thông th ng không c gán b i ng i l p trình mà c quy t
nh t i th i gian ch y c a PHP, ph thu c vào ng c nh mà bi n c dùng.
lktlucky2002@yahoo.com Page 1 of 1
Cú pháp: ch% nh m t giá tr boolean, có th s d ng t khoá TRUE hay là FALSE. C hai u
không phân bi t ch hoa hay ch th ng.
Ví d : $foo=True; // gán giá tr TRUE cho bi n $foo.
có th chuy n m t giá tr sang ki u boolean, chúng ta có th dùng (bool) hay (boolean). Tuy nhiên
trong h u h t các tr ng h p b n không c n ph i s d ng vi c ép ki u này, b i giá tr s ct ng chuy n n u
nó là m t toán t , hàm hay là c u trúc i u khi n òi h i m t tham s ki u boolean.
Chú ý: -1 c xem là TRUE, gi ng nh các giá tr khác 0 khác ( b t k là s d ng hay âm).
Cú pháp: Integer có th c ch% nh trong c s 10, c s th p l c phân hay c s bát phân, tu! ch n i
tr #c b i d u - hay +. N u b n s d ng v#i c s bát phân, b n ph i theo th' t v#i 0 'ng tr #c, còn i v#i s
th p l c phân thì 0x.
Ví d nh sau:
$a = 1234; # s th p phân
$a = -123; # s âm
$a = 0123; # s bát phân
$a = 0x1A; # s th p l c phân
lktlucky2002@yahoo.com Page 2 of 2
5. M ng : là m t danh sách các ph n t có cùng ki u d li u.M ng có th là m ng m t chi u hay nhi u
chi u.
$meat[0]="chicken";
$meat[1]="steak";
$meat[2]="turkey";
N u b n th c thi dòng l nh sau: print $meat[1]; thì trên trình duy t s hi n th dòng sau: steak.
B n c)ng có th s d ng hàm array( ) c a PHP t o ra m t m ng.Ví d :
$meat=array("chicken","steak","turkey");
$position = $chess_board[5][4];
7. Resource: là m t bi n &c bi t, ch'a m t tham chi u n m t resource bên ngoài. Các resource c
t o ra và s d ng b i các hàm &c bi t.
Gi i phóng resources: b i do tham chi u m c a h th ng c gi#i thi u trong PHP4 Zend-
engine, nó s t ng phát hi n khi m t resource không c n thi t cho lâu dài. Khi trong tr ng h p
này, t t c các resource mà ã c dùng cho resource này c gi i phóng b i "b ph n thu nh&t
rác". Do ó, hi m khi th t s c n thi t gi i phóng b nh# thông th ng b+ng cách s d ng hàm
free_result().
var = "Bob";
$Var = "Joe";
echo "$var, $Var";
Trong PHP3 thì các bi n ph i luôn luôn c gán giá tr . Còn trong PHP4 thì cung c p thêm m t cách
khác gán giá tr cho bi n: gán theo tham chi u. i u này có ngh.a là m t bi n m#i có th tham chi u n m t
bi n nguyên thu/. S thay i c a bi n m#i s tác ng n bi n nguyên thu/ và ng c l i. Nó c)ng có ngh.a là
không có sao chép, do ó vi c k t gán s di"n ra nhanh h n. th c hi n gán b+ng tham chi u, ch% c n thêm &
u tên c a bi n c gán.Ví d sau s in ra dòng 'My name is Bob' hai l n:
<?php
$foo = 'Bob'; // gán giá tr 'Bob' cho $foo
$bar = &$foo; // Tham chi u $foo qua $bar.
$bar = "My name is $bar"; // thay i $bar...
echo $bar;
echo $foo; // $foo c ng b thay i.
?>
lktlucky2002@yahoo.com Page 4 of 4
Bi n c c b .
Tham s các hàm.
Bi n toàn c c.
Bi n static.
$x = 4;
function assignx () {
$x = 0;
print "\$x inside function is $x. <br>";
}
assignx();
print "\$x outside of function is $x. <br>";
$x inside function is 0.
$x outside of function is 4.
2) Tham s c a hàm: c)ng gi ng nh nhi u ngôn ng l p trình khác, trong PHP hàm có ch'a
tham s ph i khai báo các tham s trong ph n u c a hàm. M&c d u, nh ng tham s này nh n các giá tr n t
bên ngoài hàm, nh ng chúng s ch% có th truy c p m t khi hàm t$n t i. Các tham s c a hàm c khai báo sau
tên hàm và bên trong d u {. Ví d :
i u quan tr ng c n ph i chú ý là m&c d u b n có th truy c p và thao tác v#i các tham s trong hàm mà
nó c khai báo, nh ng nó s b hu/ b khi hàm k t thúc th c hi n.
$somevar = 15;
function addit() {
GLOBAL $somevar;
$somevar++;
print "Somevar is $somevar";
}
addit();
$somevar = 15;
function addit() {
lktlucky2002@yahoo.com Page 5 of 5
$GLOBALS["somevar"];
$somevar++;
}
addit();
print "Somevar is $somevar";
4) Bi n static: t ng ph n v#i các bi n c khai báo trong các tham s c a hàm s b hu/ b khi
thoát kh i hàm, bi n static s không m t giá tr c a nó khi thoát kh i hàm và s gi nguyên giá tr ó khi hàm
c g i l i l n n a. B n có th khai báo m t bi n là static b+ng cách dùng t khoá STATIC &t tr #c tên bi n.
Ví d :
function keep_track() {
STATIC $count = 0;
$count++;
print $count;
print "<br>";
}
keep_track();
keep_track();
keep_track();
K t qu là :
1
2
3
Truy c p bi n t trình duy t:
Khi dùng PHP, c)ng nh các ph n m m trung gian khác, thông tin c cung c p tu! ch n d a vào
tham chi u ng i dùng. D. nhiên thông tin s n thông qua “form”. Thông tin c)ng có th n t nh ng n i
khác, nh “cookie” hay “sessions”.
a.Bi n form:
M t trong nh ng cách ph bi n là chuy n bi n thông qua “form”. M(i thành ph n trong form c a chúng
ta s c gán tên và thu c tính giá tr . Khi form c “submit” thì name=value s c chuy n n PHP. Chúng
ta có th chuy n n PHP b i ph ng pháp GET ho&c POST, tùy thu c chúng ta ch n gì trong thu c tính hành
ng c a “form”. M t khi form c “submit”, nh ng thành ph n c a form s t ng tr thành nh ng bi n toàn
c c trong PHP.
b.Sessions:
PHP c)ng gi ng nh ASP và ColdFusion u h( tr sessions. V y sessions là gì? V c b n nó là m t
cách khác duy trì tr ng thái gi a các trang Web. Chúng ta b t u m t sessions b i hàm start_session(). Khi
ó PHP s ng ký m t session ID duy nh t và g i session ID ó v cho ng i dùng thông qua cookie. PHP s t o
nh ng t p áp tr trên server có th l u gi d u v t c a b t k! bi n nào. Nh ng t p này có cùng tên v#i session
ID.
M t khi session c t o chúng ta có th ng ký b t k! bi n s nào. Giá tr c a nó s c gi trên m t
t p máy ch . Và nh v y trong th i gian s ng c a session nh ng bi n này s c th c hi n b i b t c' trang
nào trong cùng m t tên mi n mà không c n truy c p n chúng.
Tuy nhiên có m t s ng i dùng không cho phép cookie, khi ó PHP gi d u v t các session ID qua các
querystring. Chúng ta có th làm i u này b+ng tay b+ng cách cho sessiong ID ph thu c queryString, ho&c thay
i tu! ch n c u hình. thêm session Id n querystring, ta dùng <?=SID?>. Nó s t ng in ra m t chu(i nh
sau: PHPSESSID=07e935k3kkjr0986s9d89fr9trg8rgrg20
<a href=”mypage.php?<?=SID?>”>Click my Page</a>
o n mã sau s ng ký m t session ID và gán cho nó giá tr là: hello world
<?php
session_start();
session_register(“my_var”);
$my_var=”hello world”;
lktlucky2002@yahoo.com Page 6 of 6
?>
c.Cookies:
Cookies là m t m0u thông tin nh c l u tr trên máy tính ng i dùng. M t cookies ch'a m t o n
v n b n nh có th c b i máy ch Web. Cookies cung c p cách có th gi d u v t ng i s d ng thông qua
m t s d ch v . Chúng ta ph i nh# r+ng Web là môi tr ng tr ng thái. Máy ch Web s không bi t ai yêu c u
thông tin, cookies s giúp chúng ta gi thông tin ng i dùng khi h di chuy n quanh site. Khi h t$n t i , cookies
tr thành m t ph n c a yêu c u HTTP g i n cho máy ch Web. Nh ng tr #c h t chúng ta c n thi t l p m t
cookies. Nh ng ng i phát tri n s làm i u này, gi ng nh m i th' khác trong PHP, chúng r t n gi n. Dùng
hàm setcookie() v#i nh ng tham s theo sau:
setcookie(name, value, time_to_expire, path, domain, security setting);
Vi d :
setcookie(“mycookie”, “my_id”, time()+ (60*60*24*30),”/”,”.mydomain.com”,0)
Cookie này thi t l p nh ng tham s nh sau:
o L u tr tên bi n có tên là mycookie.
o Giá tr c a bi n là my_id.
o cookie có giá tr 30 ngày k t ngày thi t l p.
o cookie có hi u l c trong m i trang c a domain.
o Nó có hi u l c trong m i ch( c a t n mi n mydomain.com
o Không có thi t l p an toàn &c bi t
V.H ng s (Constant):
H+ng là m t giá tr không th ch%nh s a c thông qua vi c th c hi n ch ng trình. B n có th nh
ngh.a m t h+ng b+ng cách dùng hàm define( ). M t khi h+ng c nh ngh.a, nó không bao gi b thay i.
Ch% có các ki u d li u boolean, integer, float, string m#i có th ch'a các h+ng. B n có th nh n giá tr
c a m t h+ng b+ng cách n gi n ch% nh tên c a nó. Không gi ng nh v#i bi n, b n không c n khai báo $ tr #c
m t h+ng. B n c)ng có th dùng hàm constant(), c giá tr c a h+ng. S d ng hàm get_defined_constants( )
nh n m t danh sách t t c các hàm ã c nh ngh.a.
Các h+ng c nh ngh.a tr #c: PHP cung c p m t l ng l#n các h+ng ã c nh ngh.a tr #c b t
k! script nào c)ng có th ch y c.
VI. Toán t :
Toán t là m t ký hi u ch% nh m t ho t ng trong bi u th'c.Các toán t có trong PHP nh sau:
Toán t M c ích
( ) Th c hi n theo yêu c u có th' t .
New Minh ho m t object m#i.
! ~ Phép Not trong Boolean, Not trong Bitwise.
++ -- T ng t ng, t ng gi m
@ Che d u l(i.
/ * % Chia, nhân, chia l y d .
+ - . C ng, tr , n i.
<< >> D ch sang trái, d ch sang ph i trong Bitwise.
So sánh nh h n, nh h n hay b+ng, l#n h n, l#n h n hay
< <= > >=
b+ng.
== != === <> So sánh b+ng, không b+ng, gi ng nhau, khác nhau.
& ^ | Phép AND, OR, XOR trong Bitwise.
&& || Phép AND, OR trong Boolean.
lktlucky2002@yahoo.com Page 7 of 7
?: Toán t tam phân.
= += *= /= .= Các toán t gán.
%=&= |= ^=
AND XOR OR Phép AND, XOR, OR trong Boolean.
Phan4
VII.C u trúc i u khi n:
Các câu l nh i u ki n: các câu l nh này cho phép chúng ta phân bi t các kh i mã l nh mà s c th c thi ch%
khi g&p ph i các i u ki n nào ó. PHP cung c p hai c u trúc l nh i u ki n. u tiên là if...elseif...else, cho phép
chúng ta có th ki m tra m t s l ng các bi u th'c và th c thi các câu l nh theo giá tr c a chúng. N u chúng ta
mong mu n ki m tra m t bi u th'c n l1 v#i m t s l ng các giá tr , PHP c)ng cung c p m t c u trúc
switch...case mà có th làm n gi n hoá i phép toán này.
1) Câu l nh If: Câu l nh If là m t trong nh ng &c tính quan tr ng nh t c a m(i ngôn ng l p trình. Nó
cho phép th c thi ch n l a các dòng mã l nh ch% khi tho mãn các i u ki n c th .Ch*ng h n:
//Canada s ch c in n u bi n $country là ca
if ($country=="ca"){
echo("Canada");
echo("Ottawa");
}
i u ki n c ki m tra trong d u {}ph i tr v giá tr Boolean, ho&c là true ho&c là false. C)ng nh b t
k! i u ki n nào mà không c thoã mãn, zero hay là chu(i r(ng (""), các giá tr không c nh ngh.a thì t t
c u tr v giá tr là false. Các i u ki n có th c n i v#i nhau b+ng các toán t logic and (&&), or(||) và
xor.Ví d nh sau:
if (((4 < 5) && (3 > 2)) xor (5 == 5)) echo ("This will not print");
Các i u ki n phân nhánh: N u i u ki n c ki m tra mà tr v false, thì PHP cho phép ta ch% ra m t
kh i l nh khác c n c th c hi n b+ng cách dùng t khoá else. M(i th' trong kh i mã l nh th c thi i u ki n
này c xem nh là m t phân nhánh và m(i nhánh ph i c nh v trong các d u ngo&c n u ch'c nhi u h n
m t dòng l nh.Ví d :
if ($h < 0) {
echo ("Negative");
} else {
echo ("Positive");
}
if ($h < 0) {
echo ("Negative");
lktlucky2002@yahoo.com Page 8 of 8
} elseif ($h == 0) {
echo ("Zero");
} else {
echo ("Positive");
}
lktlucky2002@yahoo.com Page 9 of 9
case $b:
echo ("six");
break;
default:
echo ("$val");
}
Các m ng và các it ng ch% là nh ng lo i d li u là không ph i là nh ng nhãn úng c a case trong
PHP.
lktlucky2002@yahoo.com Page 10 of 10
V#i o n mã trên, giá tr zero luôn luôn xu t hi n nh là m t tùy ch n trong thành ph n <SELECT>,
ngay c n u bi n $total_parts=0.
Các câu l nh while và do...while th ng c dùng v#i các toán t t ng hay gi m i u khi n khi nào
thì b t u và d ng nh ví d trên. Các bi n th ng c dùng cho m c ích này ôi khi c nh ngh.a nh là
các bi n i u khi n vòng l&p.Thông th ng s d ng các câu l nh while trong vi c c các records t m t truy v n
c s d li u, t các dòng trong m t file hay là t các nhân t trong m t m ng.
3. Vòng l p for: C u trúc c a vòng l&p for là khá ph'c t p h n m&c d u các vòng l&p for th ng
ti n l i h n các vòng l&p while:
for ($i = 1; $i < 11; ++$i) {
echo ("$i <BR> \n"); //In t 1 n 10
}
Câu l nh for ch'a ba bi u th'c bên trong d u ngo&c n c a nó, phân bi t v#i nhau b i d u ch m
ph0y.Bi u th'c th' nh t là m t câu l nh gán kh i t o bi n i u khi n vòng l&p. Câu l nh này c th c thi ch%
m t l n tr #c s l&p l i l n u c a vòng l&p.Bi u th'c th' hai là bi u th'c Boolean mà c th c thi t i u m(i
l n l&p. N u giá tr tr v là true thì vòng l&p s ti p t c th c hi n. N u là false thì vòng l&p k t thúc. Bi u th'c th'
ba là m t câu l nh mà th c thi t i giai o n cu i c a m(i l n l&p c a vòng l&p. Nó th ng c dùng t ng hay
gi m các bi n i u khi n vòng l&p .
VIII.Hàm:
ây là m t trong nh ng thu n l i nh t trong phát tri n 'ng d ng. Các hàm cho phép b n phát tri n vi c s d ng
l i và d" dàng ch%nh s a các thành ph n mà th t s h u ích khi b n phát tri n các 'ng d ng Web t ng t nh
trong quan ni m và ti n ích. Các k t qu c a hàm r t ng n g n, d" hi u và d" c.
V y hàm là gì? Hàm là m t o n các mã l nh v#i m t m c ích c th và ph i c gán m t tên duy
nh t. Tên hàm có th c g i t i b t k! âu trong ch ng trình, cho phép các o n mã th hi n b i tên c a nó
c th c hi n l&p l i khi c n thi t. ây là m t thu n l i b i cùng m t o n mã l nh ch% c vi t m t l n nh ng
có th c ch%nh s a d" dàng khi c n thi t.
T o m t hàm PHP là m t quá trình n gi n. B n có th t o m t hàm t i b t k! n i nào trong ch ng
trình PHP. Tuy nhiên, cho m c ích t ch'c b n có th th y r+ng s thu n l i khi &t t t c các hàm cd nh
s s d ng trong script t i u m(i file script. M t ph ng th'c khác cho vi c t ch'c hàm mà có th gi m i s
d th a áng k và t ng vi c s d ng l i là &t các hàm trong nh ng file riêng r ( c xem nh là m t th vi n).
i u này là thu n l i b i b n có th dùng các hàm l&p i l&p l i trong nh ng 'ng d ng khác nhau mà không t o ra
các vi c copy d th a và do ó gi m b#t các nguy c gây l(i do vi c vi t l i.
M t hàm th ng bao g$m ba ph n phân bi t:
• Tên c a hàm.
• C&p d u ngo&c ( ) ch'a các tham s tu! ch n nh p vào.
• Ph n thân c a hàm,n+m trong c&p d u { }.
Ví d khai báo m t hàm sau:
function display_copyright($site_name) {
print "Copyright © 2000 $site_name. All Rights Reserved.";
}
Các hàm l ng nhau: Các hàm có th l$ng nhau. i u này th t s h u ích cho các ch ng trình l#n và
nh , khi nó thêm vào m t m'c modul hoá khác vào trong 'ng d ng, k t qu s t ng lên áng k trong vi c
qu n lý mã.
Quay l i v#i ví d display_copyright trên, b n có th gi#i h n nhu c u ch%nh s a ngày tháng cùng v#i
vi c dùng m t hàm l$ng nh ngh.a tr #c c a PHP trong hàm display_copyright():
function display_copyright($site_name) {
print "Copyright ©". date("Y"). " $site_name. All Rights Reserved.";
}
B n c)ng có th l$ng các khai báo hàm trong m t hàm khác. Tuy nhiên, vi c l$ng m t khai báo hàm
không ng ý r+ng nó s c b o v trong ph m vi gi#i h n mà nó c khai báo. H n th n a, m t hàm c
lktlucky2002@yahoo.com Page 11 of 11
l$ng vào không th a k các tham s nh p vào c a "cha m2" nó, các tham s ph i c chuy n sang hàm c
l$ng ch% khi chúng c chuy n sang hàm khác. Tuy nhiên, vi c l$ng các khai báo hàm là th t s h u ích cho các
lý do qu n lý mã và m b o s rõ ràng c a t ch'c mã.
Ví d :
function display_footer($site_name) {
function display_copyright($site_name) {
print "Copyright © ". date("Y"). " $site_name. All
Rights Reserved.";
}
print "<center>
<a href = \"\">home</a> | <a href = \"\">recipes</a> | <a href =
\"\">events</a><br>
<a href = \"\">tutorials</a> | <a href = \"\">about</a> | <a href =
\"\">contact us</a><br>";
display_copyright($site_name);
print "</center>";
}
$site_name = "PHP Recipes";
display_footer($site_name);
Sau khi th c hi n, o n script trên s cho k t qu nh sau:
Hàm quy: Ho t ng c a m t hàm g i l i b n thân chính nó nhi u l n tho mãn m t vài phép toán
th t s là m t s'c m nh. N u c s d ng m t cách úng n, các vi c g i hàm quy có th ti t ki m c
kho ng tr ng không áng và d th a trong m t script và &c bi t h u ích cho vi c th c hi n các th t c l&p i l&p
l i.
Ví d s d ng m t hàm l&p quy tính m t t p h p các s integer.
function summation ($count) {
if ($count != 0) :
return $count + summation($count− 1);
endif;
}
$sum = summation(10);
print "Summation = $sum";
lktlucky2002@yahoo.com Page 12 of 12
K t qu c a o n mã trên s là Summation=55
S d ng hàm quy có th c i thi n t c trong m t ch ng trình n u hàm cg i th ng
xuyên.Tuy nhiên,ph i c0n th n khi vi t các th t c quy ,n u mã không úng s d-n n vi c l&p không d ng
c.
Các hàm có th thay i: Kh n ng thú v c a PHP là có th th c hi n các hàm có th bi n i c. M t
hàm có kh n ng thay i là m t l i g i " ng" n hàm mà tên c a nó c xác nh t i th i i m th c thi. M&c
d u không th t s c n thi t trong h u h t các 'ng d ng Web, nh ng các hàm có th thay i có th gi m kích
th #c mã và ph'c t p m t cách áng k , thông th ng lo i b các câu l nh i u ki n if không c n thi t.
Ta có th g i hàm có th thay i c b+ng cách g i tên m t bi n theo sau là t p các d u ngo&c n( ).
Trong d u ngo&c n ó là t p các tham s tu! ch n nh p vào. Hình th'c thông th ng c a m t hàm có th thay
i nh sau: $function_name();
Ví d :s d ng hàm có th thay i xác nh các bi n nh p vào.
//thông i p chào ti ng Italia
function italian() {
print "Benvenuti al PHP Recipes.";
}
// thông i p chào ti ng Anh
function english() {
print "Welcome to PHP Recipes.";
}
// gán ngôn ng dùng là ti ng Italia
$language = "italian";
//th c thi hàm có th thay i c.
$language();
Xây d ng các th vi n hàm: Các th vi n hàm là m t trong nh ng cách h u ích ti t ki m th i gian khi
xây d ng các 'ng d ng. Ví d , b n có th vi t m t lo t các hàm cho vi c s p x p các m ng. B n có th s d ng
l i các hàm này trong các 'ng d ng khác nhau. H n là vi c th ng xuyên vi t l i hay copy và dán các hàm này
vào các script m#i, nó th t s ti n l i khi &t t t c các hàm liên quan n vi c s p x p trong cùng m t file phân
bi t. File này s ch'a các tiêu d" dàng nh n ra,ch*ng h n nh array_sorting.inc. Ví d nh sau:
<?
// file: array_sorting.inc
// purpose:th vi n ch a các hàm dùng cho vi c s p x p
function merge_sort($array, $tmparray, $right, $left) {
. . .}
function bubble_sort($array, $n) {
. . .}
function quick_sort($array, $right, $left) {
. . .}
?>
Hàm th vi n array_sorting.inc này s ho t ng nh là m t ch( ch'a cho t t c các hàm s p x p m ng.
i u này th t s h u ích b i b n có th t ch'c các hàm m t cách hi u qu theo m c ích cho phép d" dàng tìm
ki m khi c n thi t. M t khi b n xây d ng cho chính mình m t th vi n hàm, b n có th s d ng các câu l nh
include() và require() c a PHP ch'a toàn b các file th vi n vào trong m t script do ó làm cho t t c các
hàm u có s n. Cú pháp chung c a hai câu l nh này nh sau:
include(path/filename);
require(path/filename);
hay c)ng có th nh sau:
include "path/filename";
require "path/filename";
"path": ng d-n tuy t i hay t ng i c a filename.
Gi s b n mu n dùng th vi n array_sorting.inc trong m t script.B n có th d" dàng th c hi n nh
sau:
include ("array_sorting.inc");
Bây gi thì b n có th d" dàng s d ng b t k! hàm nào trong array_sorting.inc
$some_array = (50, 42, 35, 46);
lktlucky2002@yahoo.com Page 13 of 13
//s d ng ph ng pháp s p x p bubble_sort( )
$sorted_array = bubble_sort($some_array, 1);
IX.Classes và Objects
1. Class: là m t t p h p các bi n và các hàm cùng làm vi c v#i các bi n này. M t class c nh
ngh.a theo cú pháp sau:
<?php
class Cart
{
var $items; // Items in our shopping cart
function add_item ($artnr, $num)
{
$this->items[$artnr] += $num;
}
function remove_item ($artnr, $num)
{
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>
Ví d trên nh ngh.a m t class có tên là Cart, ch'a các m ng k t h p c a các article trong m t cart và hai
hàm dùng thêm và b các th' ra kh i cart này.
Chú ý: trong PHP 4, ch% có các h+ng c kh i t o cho các bi n var m#i c cho phép kh i t o các
bi n v#i các giá tr không ph i là h+ng s , b n c n có m t hàm kh i t o c g i m t cách t ng khi object
c d ng t l#p. Ch*ng h n nh hàm c g i trong m t hàm d ng nh sau:
<?php
class Cart
{
var $todays_date = date("Y-m-d");
var $name = $firstname;
var $owner = 'Fred ' . 'Jones';
var $items = array("VCR", "TV");
}
class Cart
{
var $todays_date;
var $name;
var $owner;
var $items;
function Cart()
{
$this->todays_date = date("Y-m-d");
$this->name = $GLOBALS['firstname'];
/* etc. . . */
}
}
?>
lktlucky2002@yahoo.com Page 14 of 14
2. extends: th ng thì b n c n các l#p v#i các bi n và các hàm t ng t cho m t l#p t$n t i khác.
Th c t , r t t t khi b n nh ngh.a m t l#p chung mà c s d ng trong các $ án c a b n và ch%nh s a l#p này
cho thích nghi v#i nhu c u c a m(i $ án. th c hi n i u này, các class có th c m r ng t các class
khác.Vi c m r ng hay d-n xu t m t l#p có t t c các bi n và các hàm c a l#p cha ( i u này c xem là th a
k ) và nh ng gì b n thêm vào trong nh ngh.a m r ng. Không gi ng nh các ngôn ng l p trình h #ng i
t ng khác, PHP không h( tr a th a k , cho nên m t l#p m r ng ch% luôn luôn ph thu c vào m t l#p cha
riêng r1 c a nó. Các l#p c m r ng s s d ng t khoá extends. Ví d :
class Named_Cart extends Cart{
var $owner;
function set_owner ($name){
$this->owner = $name;
}
}
Ví d trên nh ngh.a m t l#p Named_Cart mà có t t c các bi n và các hàm c a l#p Cart thêm và c ng
thêm các bi n $owener và hàm set_owner().
lktlucky2002@yahoo.com Page 15 of 15
// g i B() nh là m t hàm d ng
$b = new B;
lktlucky2002@yahoo.com Page 16 of 16
I. T i sao l i s d ng MySQL?
II. T o c s d li u và ng i dùng:
lktlucky2002@yahoo.com Page 17 of 17
Khi b n th y m t ph n h$i gi ng nh sau: Query OK,1 row affected (0.06 sec). i u này ch'ng t b n ã
thành công trong vi c t o c s d li u, n u không có ph n h$i thì b n xem l i ã ánh ; cu i dòng ch a. D u ;
b o MySQL r+ng b n ã hoàn thành và yêu c u nó hãy th c hi n chính xác câu l nh.
Các ng i dùng và các quy n: M t h th ng MySQL có nhi u ng i dùng, vì lí do b o m t cho nên v#i m(i
ng i dùng c a h th ng c n ph i có m t account và password. i u này không có ngh.a là b n ph i b t bu c
ph i t o ra password cho ng i dùng, nh ng i u nên làm là cung c p các password cho t t c nh ng ng i dùng
mà b n ã t o ra.
Các quy n h th ng c a MySQL: M t trong nh ng &c tính t t nh t c a MySQL là nó h( tr t t c các quy n
ph'c t p c a h th ng. Khi b n t o ra m t ng i dùng trong MySQL, b n trao quy n cho ng i ó nh rõ
nh ng gì ng i ó có th và không th i v#i h th ng.
T o ng i dùng: s d ng l nh GRANT
Các l nh GRANT và REVOKE c dùng trao và l y quy n n ng i dùng MySQL v#i b n c p
b c phân quy n nh sau:Global, Database, Table, Column
L nh GRANT: t o ng i dùng và giao quy n cho h .C u trúc nh sau:
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED By 'password']
[WITH GRANT OPTION]
L nh REVOKE: trái ng c v#i GRANT.Nó dùng thu h$i l i các quy n c a ng i dùng, và có c u
trúc t ng t nh GRANT
REVOKE privileges [(columns)]
ON item
FROM user_name
T o b ng c s d li u: s d ng l nh CREAT TABLE, cú pháp thông th ng là:
CREAT TABLE tablename(columns)
Ví d , t o m t b ng customers nh sau:
create table customers(customerid int unsigned not null auto_increment primary key,name
char(30) not null,address char(40) not null,city char(20) not null);
Xem d li u v i l nh SHOW và DESCRIBE: Sau khi ng nh p vào màn hình MySQL, b n có th xem các b ng
trong c s d li u b+ng cách ánh vào nh sau:
mysql> show tables;
Thì MySQL s hi n th t t c các b ng trong c s d li u.
B n c)ng có th s d ng show xem danh sách các c s d li u b+ng cách ánh vào nh sau:
mysql>show databases;
xem thêm các chi ti t v m t b ng c th b n s d ng l nh DESCRIBE:
mysql> describe tablename;
lktlucky2002@yahoo.com Page 18 of 18
insert into customers values(NULL,"le bao vy","phan chau trinh","DH Ky
Thuat");
K t n i nhi u h n hai b ng: Ph'c t p h n k t n i hai b ng l i v#i nhau.Theo lu t thông th ng, b n c n n i các
b ng t ng c&p v#i nhau v#i các i u ki n n i.Ví d nh sau:
select customers.name
from customers,orders,order_items
where customers.customerid=orders.customerid
and orders.orderid=order_items.orderid
and order_items.isbn=books.isbn
and books.title like '%Java%';
S d ng tên khác cho b ng (tên hi u-alias): Thông th ng chúng ta truy c p n tên c a các b ng b+ng các tên
hi u c a chúng. B n có th t o ra các tên hi u này khi b t u câu truy v n và sau ó s d ng thông qua chúng.Ví
d :
select c.name
from customers as c,orders as o,order_items as oi,books as b
where c.customerid=o.customerid
and o.orderid=oi.orderid
and oi.isbn=b.isbn
lktlucky2002@yahoo.com Page 19 of 19
and b.title like '%java%';
Nh khi b n khai báo các b ng chúng ta s dùng, chúng ta thêm m t m nh AS khai báo các tên hi u
cho b ng. Chúng ta c)ng có th dùng các tên hi u cho các c t. Vi c này th t s c n thi t khi chúng ta mu n k t
n i m t b ng v#i chính b n thân nó. i u này nghe có v1 h i khó nghe, nh ng nó th t s là h u ích, ch*ng h n
n u chúng ta mu n tìm các hàng trong cùng m t b ng mà có cùng giá tr , n u chúng ta mu n tìm các khách hàng
s ng trong cùng m t thành ph , chúng ta có th &t các tên khác nhau cho cùng m t b ng Customers.Ví d :
select c1.name,c2.name,c1.city
from customers as c1,customers as c2
where c1.city=c2.city
and c1.name!=c2.name;
Truy xu t d li u theo th th yêu c u: Khi b n mu n hi n th các hàng c truy xu t b+ng m t truy v n theo
m t th' th yêu c u, b n có th s d ng m nh ORDER BY c a câu l nh SELECT. M nh này s s p x p
các hàng c a m t hay nhi u c t c li t kê trong m nh SELECT. Ví d :
select name,address
from customers
order by name;
select name,address
from customers
order by name asc;
select name
from customers
limit 2,3;
lktlucky2002@yahoo.com Page 20 of 20
Câu truy v n này có th c hi u nh sau: ch n tên t b ng customers và sau ó tr l i 3 hàng b t ut
hàng th' hai c a nh p vào.
UPDATE tablename
SET column1=expression1,column2=expression2,...
[WHERE condition]
[LIMIT number]
Ví d , chúng ta mu n t ng giá t t c các quy n sách lên 10%, chúng ta s s d ng câu l nh UPDATE nh
sau:
update books
set price=price*1.1;
Thay i các b ng sau khi t o: Chúng ta có th thay i c u trúc c a các b ng trong c s d li u b+ng cách s
d ng câu l nh ALTER TABLE. C u trúc c n b n c a nó nh sau:
Ví d : trong b ng Customers, chúng ta cho phép tên dài 30 kí t , sau khi chúng ta b t u t o m t s d
li u, chúng ta có th phát hi n r+ng m t s tên là quá dài và ang b c t, chúng ta có th s a i u này b+ng cách
thay i lo i d li u c a c t nó có th dài n 45 kí t .
Chú ý:n u b n vi t DELETE FROM table; thì t t c các hàng trong b ng s b hu/ b .
Hu các b ng: B n có th hu/ toàn b m t b ng b+ng cách s d ng câu l nh DROP TABLE. C u trúc này r t
n gi n, nó nh sau:
CREAT INDEX có th thêm m t index thông th ng hay m t index duy nh t cho m t b ng:
lktlucky2002@yahoo.com Page 24 of 24
Sau ây là ví d n gi n trình bày cách k t n i, th c thi câu truy v n, in các hàng k t qu và ng ng k t
n i t c s d li u MySQL.
<?php
/* K t n i,ch n c s d li u */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Could not connect");
print "Connected successfully";
mysql_select_db("my_database") or die("Could not select database");
/* Th c hi n câu truy v n SQL */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Query failed");
/* In k t qu ra trang *.HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* Free resultset */
mysql_free_result($result);
/* óng k t n i */
mysql_close($link);
?>
Web
browser
HTTP
Web server
+ ODBC/JDBC
CGI Database
Java Applet/ HTTP Database specific API
programs/
Application Servlets/
PHP scripts Third Tier
Second Tier
HTTP
Platform
dependent
Client
i v#i Web site xây d ng b+ng PHP&MySQL thì mô hình 'ng d ng web database nh sau:
1 2 3
Trình duy t Web server PHP engine MySQL server
6 5 4
lktlucky2002@yahoo.com Page 27 of 27