1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kỹ thuật và thủ thuật lập trình hướng đối tượng php t2 khái niệm, kỹ thuật và viết mã

10 4 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 889,77 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu thiếu tựã đề này, không th ể dễ dàng phân b iệ t m ột cuốn sách này với m ột cuô'n sách khác.. Các query được thực th i sử dụng S tructured Query Language... Ví du, cú th ể tliây vằn

Trang 1

Th.S: NGUYỄN MINH - LƯƠNG PHÚC

và n h ó m tin học thự c d ụ n g

Kỹ thuật và thủ thuật lập trình hướng đốì tưỢng

Khái niệm, kỹ thuật và viết mã

New Edition

♦ T rọii bộ 2 tậ p hạ n s ẽ có cơ h ộ i cọ x á t đ ẻ n ân g cao Icỹ

n ăiig lậ p trm li tliôiig q u a v iệc tliự c h à n h s ủ dm iíỊ các

t ín h năn g cao cáp, c h ẳ n g h ạ n n h u các vấii íiti cơ sd

d ứ liệii, MySQỊv, SQ Ịvite v à P D O c tia P H P

♦ Với phươiiq p h áp hiíớnQ d ản t à n g ví d ụ b ạ n sẽ Idiỗnp

Iiliửng d ể dàiiíỊ n ắ m b ắ t các Id iá i mộiTL c ă n b ả ii, nâng cao liơii ciiiiẹỊ Iiliit c á c h SI^ dxuig các côniỊ cxx lậ p trù ili ciia P H P đ ễ v iế t c á c c h tíớ n g t r ì n h P I Ỉ P c ă n bảii

^ Mỗi chương cồn có n h iề u b à i tậ p tliụ c liảiứá n ià b ạ n

n ê n là m th e o đ ể n ắ m vũnữ, n ộ l d ting đtíỢc tr ìn h bày,

b a o g è m s ự cài đ ặ t p h lu i m ề m , c ú p h á p n g ô n ngiì, các

c ẩ u trứ c d ữ K ệư

♦ M à đ iểm đ ặc b iệ t ciia bộ sách chính là ở I>hươiig pliáỊ hướng d ẫ n r ẩ t đ ơ n g iả n v à cỢc kỳ d ề tiế p tìiư

NHÀ XƯẤT BẢN HỒNG ĐỨC

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 2

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 3

I v ờ l NÓI ĐẦU

B ộ s á c h " K j' t l i u ậ t v à th ủ t h u ậ t lậ i) t r ì n l i liư ớ n g đ ố i

tư ợ n íị P H P ” đ ư ợ c b i ê n so ạ n n h ằ m m ụ c đ íc h d à n h clio

n h ữ n g người m ớ i b ắ t đ ầ ii biíớc c h â n vào t h ế g iớ i c ủ a n g ô n

n g ữ lậ p ư ù i h P H P K h ô n g g iống n h ư n h ữ n g s á c h Id iác ,

s á c h n à y Id iô n g đ ò i h ỏ i b ạ n p h ả i h ọ c q u a trư ớ c cá c v ấ n đ ề

c ă n b ả n v ề lậ p t r ì n l i W eb ha}' cơ sỡ d ữ liệ u M à đ iể m đ ặ c

b i ệ t c ủ a b ộ s á c h c h ú i h là ở p h ư ơ n g p h á p h ư ớ n g d ẫ n r ấ t

đ ơ n g iả n v à cự c Icỳ d ể tiế p ứ iu

T liự c vậy, với p h ư ơ n g p h á p h ư ớ n g d ẫ n b ằ n g v í d ụ b ạ n

s ẽ Id iô n g n h ữ n g d ễ d à n g n ắ m b ắ t cá c I d iá i n iệ m c ă n b ả n ,

m à tliồ n g q u a đ ó s ẽ d ầ n trở n ê n q u e n tíiu ộ c với cá c Id iá i

n iệ m n â n g c a o h ơ n c ủ n g n h ư c á c h s ử d ụ n g cá c cồ n g c ụ lậ p

t r ì n h c ủ a P H P đ ể các c h ư ơ n g t r ì n h P H P c ă n b ả n

H ơ n n ữ a , với tr ọ n b ộ 2 t ậ p b ạ n s ẽ có cơ liộ i cọ x á t đ ể n â n g cao k ỷ n ă n g lậ p t r ì n h tliô n g q \ia v iệ c tliự c lià iili s ử d ụ jig

cá c t í n h n ă n g c a o c ấ p , c h ẳ n g h ạ n n h ư cá c v ấ n t i n cơ sở d ử

liệ u , M ySQ Ị/, S Q L ite v à PD O c ủ a P H P , c á c c ô n g n g liệ XMIv, c á c coolcie, s e s s io n và lie a d e r , v à cá c p liầ n m ở rộ n g

c ủ a b ô n t h ứ b a

S á c h có b ố c ụ c rỗ rà n g th e o từ iig c h ư ơ n g v à đ ề m ụ c,

cá c b tíớ c h iíớ n g d ẫ n c ụ ứ i ể v à d ễ h ic ii M ỗi cliiíơ n g cò n có

n h iề u b à i tậ p ứ iự c h à n li m à b ạ n n ê n là m th e o đ ể n ắm

^àỈIlg n ộ i d m ig d ư ợ c t r ì n h b à y , b a o cỊồtn s ự c à i đ ặ t p h ầ n

n iè in , c ú p h á p n g ô ii n g ữ , các c ấ u ta*úc đ ữ liệ u , cá c th tíờ n g

I x m li đ i c u I d i i t n , c á c l i à n i c à i s ẵ n , v à n liiề a i t á c Aại liữ íi

íc h k h á c

H y vọ n g s á c h s ẽ là n iộ t tà i liệ u h ọ c t ậ p h ữ u íc h c h o b ạ n

đ ọ c tr o n g q u á t r ì n h ti-ỏ tlià n h m ộ t c h u y ê n g ia v ề P H P

T ấ c g iả

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 4

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 5

C h ư ơ n g 7 : Làm v iệ c v ớ i c á c cơ sỏ dữ liệu và S Q L

PHẨN 2

Làm viêc với dữ

liêu từ những nguồn khác

CbiửJ9ig 7: Làm v iệ c vớ i c á c cơ s ở

d ữ liệu và SQL Chươìig &• Làm v iệ c vớ i XML Chương 9: Làm v iệ c vớ i cá c Cookie, Sessiơn, và H e a d e r

Chươĩtg 10: X ử lý c á c lỗi Chiừýiìg 11: B ảo v ệ an toàn PHP Cbươềig 12: M ờ rộng PH P

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 6

8 C h ư ớ n g 7: Làm v iệ c v ớ i c á c cơ sỏ dữ liêu và SQ L

Làm việc với các cơ sd dữ

liệu vò SQL

Ể! Hoc nbiÌỲìg kbái niệm cơ sở d ữ liộn I'à Stnicliired Qiierỵ Langỉiage

• Thêm, biên tập, xóa và xem các record sứ dụng các CO' sở ciữ liệit MySQL và SQLiie

M Tniy tìm các record cơ sứ d ũ liệu iĩới PHP

• ỉỉiộii lực bóa và htli d ữ liệu ĩihập Cíta ngííời dũng sang mộ! cơ sở dữ

ìiC>ti ì'ới PHP

» Viết các cbỉỉơtìg trình điền khiền bàng cơ sở đ ữ liệu kbả chìtyển

(portable)

Một tro n g những lý do cho sự th ô n g dụng của P H P n h ư là m ột

ngôn ngữ v iế t scrip t Web là nó hỗ trợ m ột dãy rộng các hệ

th ố n g dữ liệu quan hệ Sự hỗ trợ làm cho các n h à p h á t triể n Web dễ d àng tạ o các Web site điều k h iể n b ằng dữ liệu v à tạo nguyên mẫu các ứng dụng Web m ột cách n h a n h chóng v à hiệu quả

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 7

C h ư ơ n g 7 : Làm v iệ c với các c ơ s ỏ dữ liệu và SQL

P H P hỗ trợ h ơ n 15 bộ m áy cơ sở dữ liệu khác nh au bao gồm Microsoft

SQL S erver, IBM DB2, PostgreSQ L, và Oracle Cho đến P H P 5, sự hỗ trợ

này đă được cung cấp qua các extension cơ sở dữ iiệu riêng, mỗi extension

có chức n ă n g v à tín h n ăn g riên g của nó Tuy nhiên, điều này đ ã làm cho các

n h à p h á t triể n kh ó th a y đổi từ m ộ t bộ m áy cơ sở dữ liệu này sa n g m ột bộ

m áy cơ sở đữ liệu khác PH P 5 đ ã giải quyết tìn h huống n ày b ằ n g việc giới

th iệu m ột A PI chung cho sự tru y cập cơ sở dữ liệu: extension P H P D ata

Objects (PDO), cung cấp m ột giao diện hợp n h ấ t để là m việc với cơ sở dữ

Uệu %'à giúp các n h à p h á t triể n xử lý những cơ sở dữ liệu k h ác n h au một

cách n h ấ t quán

T rong P H P 5.3, extension PDO đã được cải tiế n th ê m nữa với sự hỗ trợ

cho các bộ m áy cơ sở dữ liệu m ới v à những tối ưu h ó a th ê m nữa cho an n in h

v à hiệu su ất Đ ể đ ạ t được k h ả n ă n g tương thích ngược, các extension cơ sở

dữ liệu riê n g cũng tiếp tục dược hỗ trợ Bởi vì b ạn sẽ thư ờng tự n h ậ n th ấy

m ình đã chọn giữa m ột extension riêng của m ình (m à có th ể n h a n h hcm

hoặc đưa r a n h iều tín h n àn g hơn) hoặc PDO (đưa r a tín h k h ả chuyển và

tín h n h ấ t quán qua các bộ m áy cơ sở dữ liệu), chương n ày đề cập d ến h a i tùy

chọn; chương giới th iệu về PDO v à cũng th ả o luận h a i tro n g sô’ các exten-

sion riê n g th ó n g dụng n h ấ t của PH P, extension MySQL Im proved và ex-

ten sio n SQLite

Giới ỉh iệ u các cơ sở dữ liệu và SQL

Trong th ờ i đại In te rn e t, th ô n g tin không còn được tr ìn h bày tro n g các tủ

đựng hồ sơ nữa T hay vào đó, nó được lưu trữ dưới d ạng các số 1 và số 0

tro n g cấc kiểu dữ liệu điện tử vốn là những "hộp chứa" lưu trữ dữ liệu áp dặt

m ột cấu trúc n h ấ t định về th ô n g tin N hững cơ sở dữ liệu điện tử này không

chỉ chiếm í t không gian v ậ t lý hơn không gian gỗ và kim loại tương ứng m à

chúng còn chứa đầy những công cụ để giúp người dùng lọc và tru y tìm

n h a n h th ô n g tin sử dụng những tiêu chí khac ưhau Cụ th ế hầu h ế t các cơ

sở dữ liệu điện tử ngày nay là những cơ sở dữ liệu quan h ệ (relational

database) cho p h ép người dùng d ịn h nghĩa mối quan h ệ giữa các b ản g cơ sở

dữ liệu k h ác n h au để tìm kiếm v à p hân tích hiệu quả hơn

H iện có sẵn m ột số lớn các h ệ thông quản lý cơ sở dữ liệu, m ột số thương

m ại và m ột số m iễn phí Có lẽ b ạn đã nghe đến m ột vài hệ th ô n g này:

Oracle, M icrosoft Access, My SQL, và PostgreSQL N hững h ệ th ô n g cơ sở

dữ liệu n ày là nhữ ng ứng dụng p h ần m ềm m ạnh, phong phú tín h n ăn g có

k h ả n án g tổ chức v à tìm kiếm h à n g triệu record với nhữ ng tốc độ r ấ t cao;

do đó chúng dược sử dụng rộng rã i với các doanh n g h iệp v à v ă n phòng

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 8

10 C h ư ơ n g 7: Làm việ c với các cờ s ở dữ liệ u v à SQ L

chính phủ, thư ờng cho nhữ ng mục đích r ấ t quan trọng Trước k h i đi vào chi

tiế t cụ th ể của việc xử lý các record cơ sở dữ liệu với P H P , trước tiê n cần

p h ải hiểu rõ các k h á i niệm cơ sở dữ liệu cơ bản Nếu b ạ n m ới là m quen với

cơ sở dữ liệu này, các p h ầ n sau dầy cung cấp m ột n ề n tả n g v à cũng cho b ạn

th ử nghiệm với m ột bài tậ p thực tiễ n tro n g S tru c tu red Q uery Language

(SQL) T hông tin này sẽ hữu dụng để hiểu nội dung n â n g cao hơn tro n g các

p h ần tiế p theo

Tìm hiểu các cớ sỏ dữ liệu, record, v à khóa chính (Prí-

m a ry Key)

Mọi cơ sở dữ liệu gom m ôt hoặc nhiều b ản g (table) N h ữ n g b ả n g n ày tạo cấu trú c dữ liệu th à n h các h àn g v à cột, áp đ ặ t sự tổ chủc lê n dữ liệu H ình

7.1 m inh h ọ a m ột b ảng điển hình

B àng này chứỉt các sõ’ jiệ'j b án h ãn g oho vỊ !;rj k h á c n h au vt'i hàny hoặc record (bản ghi) chứa thòng tin cho m ôt vị rri v a n ă m kỉiác Mồi

recorđ được p h â n chia trở th à n h các cột hoặc field (trường) với mỗi trường

chứa m ột đoạn thông tin khác Cấu trúc d ạng b ản g n ày làm cho dễ tìm

kiếm tr ê n b ản g để tìm r a các record khớp với tiêu chí (criteria) cụ th ể: ví

dụ, t ấ t cả vị tr í có doanh sô' lớn hơn $10,000 hoặc d o an h s ố cho t ấ t cả vị trí

tro n g n ăm 2008

Các record tro n g b ản g không được sắp xếp th eo b ấ t kỳ th ứ tự cụ th ể - chúng có th ể được p h ân loại th eo thứ tự b ảng chữ cái, th e o n ăm , th eo tổng

doanh số, th eo vị trí hoặc th eo b ấ t kỳ tiêu chí m à b ạ n chọn xác định Do đó

để làm cho dễ n h ậ n dạn g m ột record cụ th ể , cần p h ả i th ê m m ộ t thuộc tín h

n h ậ n d ạn g duy n h ấ t vào mỗi record chẳng h ạ n n hư m ột số se ria l hoặc m ã

trìn h tự T ro n g ví dụ trước, mỗi record được n h ậ n d ạ n g b àn g m ột trường

'record ID' duy n h ất; trường này ảược gọi là p rim ary key (khóa chính) clio

bảng

ì 2007 Washincion 12929

Tị 2007 Ncw York 13636

5 2007 Lo*; Aiìícles S748

6 2<X)7 Rosloil M78

10 2008 Ncsv Yoric (2373

11 2í)08 L«>.s Ankĩcles

Hình 7.1 Một bảng mẫu

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 9

C h ư ơ n g 7: Làm v iệ c với các cơ sở dữ liệu và SQL 11

Thủ thuật

M ộ t cách dễ dàng đ ể hiểu những khái niệm này là bằng m ộ t sự tương dồng

H ăy xem m ộ t c ơ sở dữ liệu như là m ột th ư viện và m ỗi bảng là m ột kệ sách bên tro n g th ư viện này D o đó m ột record là sự dại diện diện tử của m ột cuốn sách trê n m ộ t kệ sách vớ i tựa dề của cuốn sách là khóa chính của record Nếu thiếu tựã đề này, không th ể dễ dàng phân b iệ t m ột cuốn sách này với m ột cuô'n sách khác (Cách duy n h ấ t d ể làm điều nàỵ là m ở m ỗi cuô'n sách và kiểm tra nội dung của nó - m ộ t tiế n trìn h mâ't thời gian m à khóa c h ín h sẽ giúp bạn tránh được)

M ột k h i bạn đ ã đưa thông tin vào m ột bảng, bạn thư ờng muốn sử dụng

aó để tr ả lời các câu hỏi cụ th ể ■ ví dụ, bao nhiêu vỊ trí có doanh số lớn hơn

$5000 tro n g 2008? N hữ ng câu hỏi này được gọi là các query (mẫu tru y vấn)

và k ế t quả được t r ả về bởi cơ sở dữ liệu n h ằm p hản hồi lạ i nhữ ng query này

được gọi là các tậ p hợp k ế t quả (result set) Các query được thực th i sử dụng

S tructured Query Language

Tìm hiểu các m ối quan hệ và khóa ngoại (Poreign Key)

B ạn đ ã b iế t rằ n g m ột cơ sở dữ liệu có th ể chứa nhiều bảng Trong m ột hệ

th ô n g cơ sở dữ liệu quan hệ, những bảng này có th ể được liên k ết với nhau

b ằng m ột hoặc n h iều trường chung được gọi là các kh ó a ngoại (foreign key)

N hững k h ó a ngoại này làm cho có th ể tạo các mô’i q uan h ệ m ột đô'i một

(one-to-one) hoặc m ột đối nhiều (one-to-many) giữa các b ảng k h ác n hau và

k ế t hợp dữ liệu từ n h iều b ản g để tạo các tậ p hợp k ế t quả to à n diện hơn

Để m inh họa, h ãy xem xét h ìn h 7.2 trìn h bày b a b ản g được liên kết

G a it t lD

1 H oítoí

2 Crim c Roni;mcc

AitỉhorỉD AufỊiorS<mtĩ

1 Sieplicn K ìiìk

2 Uamelk* Srccle

3 lX'nnỉs Lcliano

4 M K'hael C onnellv

> N ora Rohcrts

B noklD BookNahie G e tu rỉí) A uỉh orlD

4 Tha Overlook 1 4

Hình 7.2 Các môi quan hệ bảng

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Trang 10

H ìn h 7.2 m in h h ọ a b a bảng, chứa thông tin về các tá c giả (bảng A), các

th ể loại (bảng G), v à các sách (bảng B) Các b ản g G và B k h á đơn giản:

chúng chứa m ột d a n h sách các tê n th ể loại (genre) và tá c giả, với mỗi record được n h ậ n d ạng b ằng m ột kh ó a ch ín h duy n h ấ t B ỗng B hơi phức tạp hơn: mọi sách tro n g bản g được liên k ế t với m ộ t th ể loại cụ th ể bằng

kh ó a ch ín h của g en re (từ b ảng G) và với m ột tác g iả cụ th ể qua kh ó a chính của au th o r (từ b ả n g A)

B ăng cách dò th e o nhữ ng kh ó a n ày đi đến các b ản g nguồn tuơng ứng caa chúng, b ạ n có th ể dễ d àn g n h ậ n dạng tác giả và th ể loại cho m ộ t cuốn sách

cụ thể Ví du, cú th ể tliây vằng tựa đề "The Shin.ing" được v iế t bởi "Stephon ĩliiig" và thuộc về th ể loại "HoiTOr" Tương tự, b ắ t đầu từ dầu k ia có t}iể

th ấ y rằ n g tác giả "M ichael Connelly" đ ã v iết hai cuôn sách "The Overlook'

v à "Trunk Music"

N hững mố.l quaii hệ n(iư vậy được thấy trong ỉiình 7.2 tạo nen n éii tả n g của m ột hệ th ố n g cơ sd dử liệu quan hệ Liẻn k ế t các b ảng sử dụng các khóa ngoại cũng hiệu quả hơn lựa chọn khác: tro n g k h i tạ o m ột b ản g mọi thứ

ngoại trừ bồn rửa n h à bếp để chứa tấ t cả thông tin th o ạ t n h ìn trô n g tiệ n

lợi, cập n h ậ t m ột b ả n g n hư vậy luôn là m ột tiế n tr ìn h th ủ cóng (và dễ sai sót) để tìm mọi trư ờ ng hợp của m ột giá trị cụ th ể v à th a y t h ế nó b ằn g m ột giá trị mới P h â n ch ia th ô n g tin th à n h các b ản g độc lậ p và liê n k ế t những

b ảng n ày b ằn g các k h ó a ngoại sẽ bảo đám rằ n g m ộ t m ẫu th ô n g tin cụ th ể

x u ất h iệ n m ột lầ n v à chỉ m ột lầ n tro n g cơ sở dữ liệu; điều này loại bỏ những

p h ần dư thừa, đơn giản hóa các th a y đổi (bằng việc cục bộ h ó a chúng sang

m ột vị trí) v à làm cho cơ sô dữ liệu gọn hơn và dễ q u ản lý hơn

T iến trìn h hợp lý hóa m ột cơ sd dữ liệu b ằn g việc d in h n g h ĩa v à thực th i các môi quan h ệ m ột đôi m ột và m ột đôi nhiều giữa các b ản g th à n h p hần của nó được gọi là sự chuẩn hóa cơ sớ dữ liẹu (d ata b ase norm alization) và

nó là m ột tá c vụ ch ín h m à m ột kỹ sư cơ sở dữ liệu p h ả i đối m ậ t k h i tạo m ột

cơ sd dữ liệu mới T rong tiế n trìn h chuẩn hóa, kỹ sư cơ sở dữ liệu cũng n h ận dạng các mô'i qu an hệ chéo v à những sự phụ thuộc k h ô n g ch ín h xác giữa các bảng và tối ưu hóa việc tổ chức dữ liệu sao cho các query SQL thực th i với hiệu su ấ t tố i đa C ũng có m ột sô" dạng chuẩn giúp b ạ n te s t p h ạm vi m ột cơ

sở dữ liệu được chuẩn hóa; những dạng chuẩn n ày cung cấp n h ữ n g hướng dẫn hữu dụng đ ể giúp bảo đảm việc th iế t k ế cơ sở dữ liệu vừa n h ấ t quán về cấu trúc vừa hiệu quả

1 2 C h ư d n g 7: Làm việ c v ò i c á c c d sò dữ liệu và SQ L

www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

- www.lib.haui.edu.vn

Ngày đăng: 21/10/2022, 17:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w