Tài liệu hướng dẫn về Lập trình PHP và MYSQL

Tóm tắt Tài liệu hướng dẫn về Lập trình PHP và MYSQL: ...s in Canada."); } } Cỏc cõu lệnh trờn cũng tương tự như sau: if ($country == "ca" && $position == "h") { echo ("Human resources positions in Canada."); } elseif ($country == "ca" && $position == "a") { echo ("Accounting positions in Canada."); } PHP cũng cung cấp một cỳ phỏp...My SQL - 14 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; } functi...dụng ủến một bảng cũng như ủến toàn bộ hay ủến cỏc nhúm dữ liệu trong một bảng là: Tờn Mụ tả AVG(column) Giỏ trị trung bỡnh của cỏc giỏ trị trong cỏc cột cụ thể. COUNT(items) Nếu bạn chỉ ra một cột thỡ nú trả về số cỏc giỏ trị của cột ủú.Nếu thờm vào từ khoỏ DISTINCT phớa trước tờn cột,t...

pdf27 trang | Chia sẻ: havih72 | Lượt xem: 117 | Lượt tải: 0download
Nội dung tài liệu Tài liệu hướng dẫn về Lập trình PHP và MYSQL, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
mệnh đề LIMIT. Nĩ được dùng để chỉ định các dịng nào từ nhập vào nên 
được trả lại. Nĩ gồm cĩ hai tham số: số hàng để bắt đầu và số lượng các hàng sẽ được trả lại.Ví dụ minh hoạ: 
select name 
from customers 
limit 2,3; 
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 đầu từ 
hàng thứ hai của nhập vào. 
Cập nhật các bản ghi trong cơ sở dữ liệu: Sử dụng câu lệnh UPDATE. Cấu trúc thơng dụng của nĩ như sau: 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 21
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: 
 ALTER TABLE tablename alteration [,alteration...] 
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ự. 
alter table customers 
modify name char(45) not null; 
Huỷ bỏ các records khỏi cơ sở dữ liệu: Sử dụng câu lệnh DELETE, cấu trúc như sau: 
DELETE FROM table 
[WHERE condition] 
Ví dụ: 
delete from customers 
where customerid=5; 
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ỷ tồ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: 
DROP TABLE table; 
Huỷ tồn bộ cơ sở dữ liệu: Bạn cĩ thể thực hiện điều này bằng cách sử dụng câu lệnh DROP DATABASE, cấu 
trúc như sau: 
DROP DATABASE database; 
Tạo và huỷ Index: Index là những phương tiện quan trọng để tăng tốc độ truy cập các nội dung của các bảng, 
thơng thường là dùng cho các câu truy vấn mà liên quan đến kết nối nhiều bảng với nhau. MySQL cho phép bạn 
tạo ra index một cách khá linh hoạt. Bạn cĩ thể index các cột riêng rẽ hay kết nối các cột lại với nhau. Bạn cũng 
cĩ thể cĩ nhiều hơn một index trong một bảng nếu bạn muốn cĩ thể tra cứu giá trị một cách nhanh chĩng từ các 
cột khác nhau của một bảng. 
Tạo Index: Bạn cĩ thể tạo index cho một bảng mới khi bạn dùng CREAT TABLE, hoặc cĩ thể thêm index cho 
các bảng đang tồn tại với CREAT INDEX hay ALTER TABLE. Bạn phải chỉ định rằng index cĩ thể hay khơng 
thể chứa giá trị lặp lại. Nếu nĩ khơng thể, index nên được tạo như là một khố chính (PRIMARY KEY) hay là 
một index duy nhất (UNIQUE INDEX). ðể thêm một index cho một bảng đang tồn tại, bạn cĩ thể sử dụng 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 22
ALTER TABLE hay CREAT INDEX. Trong đĩ lệnh ALTER TABLE linh hoạt hơn bởi bạn cĩ thể sử dụng nĩ 
để tạo ra một index thơng thường, một index duy nhất, hay một khố chính. Cú pháp như sau: 
 alter table tablename add index indexname(column_list) 
 alter table tablename add unique indexname(column_list) 
 alter table tablename add primary key(column_list) 
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: 
 creat unique index index_name on tablename(column_list) 
 creat index index_name on tablename(column_list) 
ðể tạo một index cho một bảng mới khi bạn sử dụng câu lệnh CREAT TABLE, bạn cĩ thể sử dụng cú 
pháp tương tự như đã làm với ALTER TABLE, nhưng bạn phải chỉ định các mệnh đề tạo index trong phần câu 
lệnh CREAT TABLE. Cụ thể như sau: 
 creat table tablename( 
 ...... 
 index index_name(column_list), 
 unique index_name(column_list), 
 primary key (column_list), 
 ... 
 ) 
Hủy bỏ Index: Bạn cĩ thể huỷ bỏ index bằng cách sử dụng một trong hai câu lệnh DROP INDEX hay ALTER 
TABLE. Cú pháp như sau: 
DROP INDEX index_name on table_name 
 ALTER TABLE table_name DROP INDEX index_name 
 ALTER TABLE table_name DROP PRIMARY KEY 
Chú ý:Index cĩ thể bị tác động nếu bạn huỷ các cột trong một bảng. 
III. Các hàm PHP sử dụng để truy cập cơ sở dữ liệu MySQL 
• int mysql_affected_rows( [resource link_identifier]): trả về số lượng các hàng bị tác động bởi các câu truy 
vấn cuối cùng INSERT, UPDATE hay DELETE kết hợp với định danh liên kết (link_identifier). Nếu nhận 
dạng liên kết khơng cụ thể thì liên kết cuối cùng được mở ra bởi mysql_connect( ). Chú ý khi bạn đang sử dụng 
các giao dịch, bạn phải gọi mysql_affected_rows( ) sau truy vấn INSERT, UPDATE hay DELETE. 
• int mysql_character_set_name ( [resource link_identifier]):trả về ký tự mặc định gán tên cho kết nối hiện 
hành. 
• bool mysql_close ( [resource link_identifier]): trả về TRUE nếu thành cơng, FALSE nếu thất bại. Hàm này 
đĩng kết nối đến MySQL server mà kết hợp với nhận dạng liên kết định rõ, nếu link_identifier khơng định rõ thì 
liên kết mở cuối cùng sẽ được sử dụng. Việc sử dụng hàm này khơng phải lúc nào cũng cần thiết, như đối với 
các liên kết mở khơng liên tục thì nĩ sẽ tự động đĩng khi kết thúc sự thực thi của script. Chú ý hàm này khơng 
đĩng kết nối liên tục được tạo bởi hàm mysql_pconnect( ). 
• resource mysql_connect ( [string server [, string username [, string password [, bool new_link]]]]): trả về 
một định danh liên kết MySQL khi thành cơng, cịn khơng trả về giá trị FALSE. Hàm này thiết lập một kết nối 
đến MySQL server. Những giá trị mặc định sau được dùng cho các tham số tùy chọn khơng khai báo: 
server='localhost:3306', username=tên của người sử dụng là chủ của server và password= bỏ trống. Nếu lời gọi 
lần thứ hai được tạo bởi mysql_connect( ) với cùng các tham số mà khơng cĩ liên kết mới nào được thiết 
lập,nhưng thay vào đĩ một liên kết định danh của cổng đang được mở sẽ được trả về. Tham số new_link mơ tả 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 23
hành vi này và làm cho hàm mysql_connect( ) luơn mở một liên kết mới, ngay cả khi nếu hàm mysql_connect( ) 
bị gọi trước với cùng các tham số. Liên kết đến server sẽ bị đĩng ngay khi việc thực thi của script kết thúc,trừ khi 
nĩ bị đĩng sớm hơn bởi hàm gọi mysql_close( ). 
• bool mysql_create_db ( string database name [, resource link_identifier]): tạo một cơ sở dữ liệu mới trên 
server kết hợp với liên kết định danh được chỉ định. Trả về giá trị TRUE nếu thành cơng, ngược lại trả về FALSE. 
• bool mysql_data_seek ( resource result_identifier, int row_number): di chuyển con trỏ hàng bên trong của kết 
quả MySQL kết hợp với kết quả định danh cụ thể để chỉ đến số hàng được chỉ định. Nĩ sẽ trả về TRUE nếu 
thành cơng, ngược lại trả về FALSE.Row_number bắt đầu tại 0, và nên cĩ giá trị trong khoảng từ 0 đến 
mysql_num_rows - 1. 
• string mysql_db_name ( resource result, int row [, mixed field]): lấy tham số đầu tiên là con trỏ kết quả từ 
việc gọi hàm mysql_list_dbs( ). Tham số hàng là chỉ mục đến kết quả gán. Nếu xảy ra lỗi, thì trả về FALSE.Sử 
dụng hàm mysql_errono( ) và mysql_error( ) để xem bản chất lỗi. 
• resource mysql_db_query ( string database, string query [, resource link_identifier]): chọn một cơ sở dữ liệu 
và thực thi một truy vấn trên nĩ. Nếu liên kết định danh tùy chọn khơng được chỉ định hàm sẽ cố tìm ra một liên 
kết mở đến MySQL server và nếu khơng cĩ liên kết nào được tìm thấy thì nĩ sẽ tạo ra một liên kết như nếu hàm 
mysql_connect( ) đã được gọi khơng cĩ tham số nào. Hàm sẽ trả về một kết quả MySQL dương, hay là FALSE 
nếu bị lỗi. 
• bool mysql_drop_db ( string database_name [, resource link_identifier]): huỷ bỏ tồn bộ cơ sở dữ liệu từ 
server kết hợp với liên kết định danh chỉ định. Trả về TRUE nếu thành cơng, FALSE nếu gặp lỗi. 
• int mysql_errno ( [resource link_identifier]): trả về số lỗi từ hàm MySQL cuối cùng, hay là 0 nếu khơng cĩ 
lỗi nào. 
• string mysql_error ( [resource link_identifier]): trả về văn bản lỗi từ hàm MySQL cuối cùng hay ' ' nếu khơng 
cĩ lỗi nào. 
• string mysql_escape_string ( string unescaped_string): tránh unescaped_string để nĩ cĩ thể ở nơi an tồn 
trong mysql_querry( ). 
• array mysql_fetch_array ( resource result [, int result_type]): trả về một mảng tương đương với hàng tìm 
nạp, hay là FALSE nếu khơng cĩ hàng nào. 
• array mysql_fetch_assoc ( resource result): trả về một mảng kết hợp tương đương với hàng tìm nạp, hay là 
FALSE nếu khơng cĩ hàng nào. 
• object mysql_fetch_field ( resource result [, int field_offset]): trả về một đối tương chứa thơng tin các trường. 
Nĩ thường được dùng để lấy thơng tin về các trường trong một kết quả truy vấn. 
• array mysql_fetch_lengths ( resource result): trả về một mảng tương đương với chiều dài của mỗi trường 
trong hàng cuối cùng được tìm nạp bởi mysql_fetch_row() hay trả về FALSE nếu lỗi. 
• object mysql_fetch_object ( resource result): trả về một đối tượng với các thuộc tính tương đương với hàng 
tìm nạp hay FALSE nếu khơng cĩ hàng nào. 
• array mysql_fetch_row ( resource result): trả về một mảng tương đương với hàng tìm nạp, nếu khơng cĩ hàng 
nào thì trả về FALSE. 
• string mysql_field_flags ( resource result, int field_offset): trả về trường các cờ của trường được chỉ định. 
• int mysql_field_len ( resource result, int field_offset): trả về chiều dài của trường được chỉ định. 
• string mysql_field_name ( resource result, int field_index): trả về tên của trường chỉ mục được chỉ định. 
• int mysql_field_seek ( resource result, int field_offset): tìm kiếm offset của trường được chỉ định. 
• string mysql_field_table ( resource result, int field_offset): trả về tên của bảng mà trường được chỉ định ở 
trong đĩ. 
• string mysql_field_type ( resource result, int field_offset): trả về loại của trường được chỉ định . 
• bool mysql_free_result ( resource result): giải phĩng tất cả bộ nhớ kết hợp với định danh kết quả result. Hàm 
này chỉ được gọi khi bạn quan tâm đến bao nhiêu bộ nhớ đang được sử dụng cho các câu truy vấn mà trả về các 
tập hợp lớn các kết quả. Tất cả kết quả bộ nhớ kết hợp sẽ tự động được giải phĩng khi script kết thúc thực hiện. 
Trả về TRUE nếu thành cơng, FALSE nếu thất bại. 
• string mysql_get_client_info ( void): trả về chuỗi biểu thị phiên bản thư viện của client. 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 24
• string mysql_get_host_info ( [resource link_identifier]): trả về chuỗi mơ tả loại kết nối được dùng cho kết nối 
link_indentifier,bao gồm cả tên của server host. Nếu link_indentifier bị bỏ qua, thì kết nối được mở cuối cùng sẽ 
được sử dụng. 
• int mysql_get_proto_info ( [resource link_identifier]): trả về phiên bản giao thức được dùng bởi kết nối 
link_identifier. Nếu link_identifier bị bỏ qua, kết nối mở cuối cùng sẽ được dùng. 
• string mysql_get_server_info ( [resource link_identifier]): trả về phiên bản của server được dùng bởi kết nối 
link_identifier, nếu link_identifier bị bỏ qua, kết nối được mở cuối cùng sẽ được sử dụng. 
• string mysql_info ( [resource link_identifier]): trả về thơng tin chi tiết về truy vấn cuối cùng sử dụng 
link_identifier.Nếu link_identifier khơng được chỉ định, liên kết cuối cùng được mở sẽ được thừa nhận. 
• int mysql_insert_id ( [resource link_identifier]): trả về ID được tạo cho bởi cột AUTO_INCREMENT bởi câu 
lệnh truy vấn INSERT trước đĩ sử dụng link_identifier được cho. Nếu link_identifier khơng được chỉ định, liên 
kết mở cuối cùng sẽ được thừa nhận. 
• resource mysql_list_dbs ( [resource link_identifier]): trả về con trỏ kết quả chứa các cơ sở dữ liệu cĩ sẵn từ 
daemon mysql hiện hành. 
• resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier]): truy xuất 
thơng tin về tên các bảng cho trước. Các tham số là tên các cơ sở dữ liệu hay tên các bảng. 
• resource mysql_list_processes ( [resource link_identifier]): trả về con trỏ kết quả mơ tả các luồng hiện hành 
của server. 
• resource mysql_list_tables ( string database [, resource link_identifier]): lấy tên cơ sở dữ liệu và trả về con 
trỏ kết quả. 
• int mysql_num_fields ( resource result): trả về số lượng các trường trong tập hợp kết quả. 
• int mysql_num_rows ( resource result): trả về số lượng các hàng trong tập hợp kết quả. Hàm này chỉ đúng cho 
các câu lệnh SELECT. 
• resource mysql_pconnect ( [string server [, string username [, string password]]]): thiết lập kết nối đến 
MySQL server. 
• bool mysql_ping ( [resource link_identifier]): kiểm tra kết nối đến server cĩ làm việc hay khơng. Nếu nĩ 
khơng làm việc thì một kết lại tự động thực hiện. Hàm này cĩ thể được dùng bởi các script mà giữ nguyên trạng 
thái nhàn rỗi trong một lúc để kiểm tra xem server cĩ đĩng kết nối và kết nối lại nếu cần thiết hay khơng. Hàm 
này sẽ trả về TRUE nếu kết nối đến server đang làm việc nếu khơng thì trả về FALSE. 
• resource mysql_query ( string query [, resource link_identifier [, int result_mode]]): gởi một truy vấn đến cơ 
sở dữ liệu hiện hành đang hoạt động trên server mà kết hợp với định danh liên kết được chỉ định. Nếu 
link_identifier khơng được chỉ định, liên kết mở cuối cùng sẽ được thừa nhận. Nếu khơng cĩ liên kết nào được 
mở, hàm sẽ cố thiết lập một liên kết nếu mysql_connect( ) đã được gọi khơng cĩ tham số nào và dùng nĩ. 
• string mysql_real_escape_string ( string unescaped_string [, resource link_identifier]): tránh được các kí tự 
đặc biệt trong unescaped_string, trả về tập hợp kí tự hiện hành của kết nối. 
• mixed mysql_result ( resource result, int row [, mixed field]): trả về nội dung của một cell từ tập hợp kết quả 
MySQL. Tham số trường cĩ thể là offset của trường hay là tên trường hay là tên bảng của trường.tên trường. Nếu 
tên cột cĩ tên hiệu thì sử dụng tên hiệu thay cho tên cột. 
• bool mysql_select_db ( string database_name [, resource link_identifier]): gán cơ sở dữ liệu hiện hành hoạt 
động trên server mà kết hợp với định danh liên kết chỉ định. Nếu khơng cĩ định danh liên kết nào được chỉ định 
thí liên kết mở cuối cùng được thừa nhận. Nếu khơng cĩ liên kết nào được mở thì hàm sẽ cố thiết lập mộ liên kết 
như khi hàm mysql_connect( ) đã được gọi khơng cĩ tham số và sử dụng nĩ 
• string mysql_stat ( [resource link_identifier]): trả về tình trạng hiện hành của server. 
• string mysql_tablename ( resource result, int i): trả về tên bảng của trường, lấy con trỏ kết quả trả về bởi hàm 
mysql_list_table( ) cũng như chỉ mục integer. 
• int mysql_thread_id ( [resource link_identifier]): trả về ID của thread hiện hành. Nếu kết nối bị mất và bạn 
kết nối lại với mysql_ping( ), thì ID của thread sẽ bị thay đổi. ðiều này cĩ nghĩa là bạn khơng nên lấy ID của 
thread và chứa nĩ cho sau này. Bạn nên lấy nĩ khi nào bạn cần nĩ. 
• resource mysql_unbuffered_query ( string query [, resource link_identifier [, int result_mode]]): gởi một truy 
vấn SQL query đến MySQL mà khơng cần các hàng kết quả tìm nạp và đệm một cách tự động như 
mysql_query( ). 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 25
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 "\n"; 
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
 print "\t\n"; 
 foreach ($line as $col_value) { 
 print "\t\t$col_value\n"; 
 } 
 print "\t\n"; 
 } 
 print "\n"; 
 /* Free resultset */ 
 mysql_free_result($result); 
 /*ðĩng kết nối */ 
 mysql_close($link); 
?> 
Sự cần thiết của một cơ sở dữ liệu khơng chỉ bởi nhu cầu phục vụ, tạo ra các nguồn tài liệu một cách 
phong phú, mà bởi sự tăng lên của nhu cầu truy cập các thơng tin "trực tiếp" trong ngày bằng việc sử dụng một 
giao diện đơn giản và hợp nhất. Bạn cĩ thể cho phép mọi người trong các văn phịng bán hàng truy vấn một cơ sở 
dữ liệu hàng tồn kho. Cơ sỡ dữ liệu này cĩ thể được xây dựng khác, chạy trên một hệ điều hành hồn tồn khác 
với máy tính của người dùng. 
Với một web server cĩ cấu hình tốt, một cơ sở dữ liệu server( chẳng hạn như MySQL), và một vài "phép 
thần thơng" của PHP, chỉ những thứ người dùng cần mới cĩ thể cĩ trên trình duyệt web. 
Cuối cùng: nếu bạn cần các thơng tin luơn năng động, cập nhật, bạn cần phải phát triển một cơ sở dữ liệu 
đằng sau ứng dụng web.Với một cơ sở dữ liệu phía sau, web site của bạn sẽ đạt được một trình độ phức tạp và 
linh hoạt, nơi mà dữ liệu được tạo ra và sử dụng, thơng tin được làm cho cĩ ý nghĩa với người dùng mà khơng cần 
phải bắt buộc nĩ phải “đúc nặn” lại cho vừa với cách hiển thị hay tổ chức nĩ. 
IV. Kiến trúc của một ứng dụng Web Database 
Các phần cơ bản của ứng dụng Web Database là: 
 Client: trình duyệt web của người dùng, một java applet, một ứng dụng java, thậm chí là một 
platform phụ thuộc vào chương trình của client. 
 Ứng dụng logic: mã hố các thuật tốn sử dụng trong các scripts CGI, các modul đặc biệt của web 
server, thậm chí một ứng dụng phụ thuộc vào server. 
 Kết nối database: the database API, hay là các giao thức kết nối thơng thường như ODBC hay 
JDBC. 
 Database server: RDBMS, ODBMS... 
Việc thực hiện các ứng dụng đĩ cĩ thể được thực hiện bởi sử dụng mơ hình nhiều lớp, bởi một hay nhiều lớp cĩ 
thể kết hợp với nhau. Cách thực hiện thơng thường nhất là hệ thống ba lớp. 
1. Lớp thứ 1: web client( ví dụ như trình duyệt web của người dùng). 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 26
2. Lớp thứ 2: web server, các scripts của CGI, kết nối API đến database. 
3. Lớp thứ 3: database server (ví dụ MySQL server). 
Mơ hình các lớp cụ thể như sau: 
ðối với Web site xây dựng bằng PHP&MySQL thì mơ hình ứng dụng web database như sau: 
Một giao dịch chính của Web database bao gồm các giai đoạn sau: 
1. Trình duyệt Web của người dùng sẽ đưa ra một yêu cầu HTTP cho một trang web riêng biệt... Ví dụ, 
muốn viết ý kiến của mình vào guestbook, sau khi điền vào các thơng tin cần thiết theo yêu cầu vào trong các 
form HTML, người dùng bấm vào nút “Gởi đi”, thì thơng tin vừa mới viết đĩ sẽ được hiển thị trên trang 
index.php, 
2. Web server sẽ nhận được một yêu cầu cho trang index.php, nĩ sẽ truy xuất file này và chuyển nĩ 
qua PHP engine để xử lý. 
3. PHP engine bắt đầu phân tích script. Bên trong script là một yêu cầu kết nối đến cơ sở dữ liệu và 
thực thi một truy vấn. PHP mở một kết nối đến MySQL server và gởi trên một truy vấn chính xác. 
4. MySQL server nhận một truy vấn dữ liệu và xữ lý nĩ, sau đĩ gởi các kết quả về lại cho PHP engine. 
5. PHP engine hồn thành việc chạy script mà thường liên quan đến định dạng các kết quả truy vấn 
trong HTML. Sau đĩ nĩ trả kết quả HTML về lại Web server. 
Second Tier 
Third Tier 
ODBC/JDBC 
Database specific API Database 
HTTP 
HTTP 
 Web 
browser 
Java Applet/ 
Application 
 Platform 
dependent 
Client 
HTTP 
Web server 
 + 
 CGI 
programs/ 
Servlets/ 
PHP scripts 
3 2 Trình duyệt Web server PHP engine MySQL server 1 
6 5 4 
  - Tài liệu hướng dẫn học lập trình web, lập trình ứng dụng với PHP & My SQL - 27
6. Web server chuyển HTML về lại trình duyệt, nơi mà bạn cĩ thể thấy danh sách các quyển sách mà 
bạn đã yêu cầu. 
Quá trình này là căn bản tương tự đối với các script engine hay các database server mà chúng ta dùng. 
Thường thì một phần mềm Web server, PHP engine, và database server tất cả cùng chạy trên cùng một máy. Tuy 
nhiên, việc database server chạy trên một máy khác cũng là điều khá thơng dụng. Bạn cĩ thể làm được điều này 
bởi các lý do bảo mật, tăng dung lượng . 

File đính kèm:

  • pdftai_lieu_huong_dan_ve_lap_trinh_php_va_mysql.pdf