Tải bản đầy đủ (.pdf) (264 trang)

Tập bài giảng Lập trình mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.88 MB, 264 trang )

LỜI NÓI ĐẦU
Ngày nay việc sử dụng Internet và các dịch vụ trên Internet là một phần tất yếu
của cuộc sống. Công nghệ Internet và các ứng dụng phát trển trên nền Web và Internet
đã và đang làm cho đời sống của mỗi chúng ta thay đổi. Internet là một nguồn thơng tin
q giá phục vụ cho nghiên cứu, cho kinh doanh, cho giải trí … Vì vậy ngày càng có
nhiều ứng dụng trên Internet, sử dụng giao diện Web. Các cơng nghệ phát triển Web
ngày một hồn thiện.
Tập bài giảng giới thiệu công nghệ phổ biến nhất đƣợc dùng để tạo các web site
động: Ngôn ngữ kịch bản PHP và chƣơng trình quản lý cơ sở dữ liệu MySQL. Đây là
công nghệ rất mạnh và hiệu quả để khai triển khai các dự án mã nguồn mở cũng nhƣ có
thể sử dụng để trong việc khai thác, sử dụng và phát triển đƣợc các phần mềm mã nguồn
viết bằng PHP và MySQL nhƣ: Joomla, Moodle, Wordpress, Drupal, NukeViet …
Tập bài giảng Lập trình mã nguồn mở đƣợc biên soạn cho đối tƣợng sinh viên
Đại học khoa Công nghệ thông tin, trƣờng Đại học Sƣ phạm kỹ thuật Nam Định. Tập
bài giảng đƣợc chia làm 3 chƣơng:
Chƣơng 1: Tổng quan về PHP và MySQL
Chƣơng 2: Lập trình với PHP
Chƣơng 3: Sử dụng PHP với MySQL
Trong quá trình biên soạn chúng tôi xin chân thành cảm ơn các đồng nghiệp
khoa Công nghệ thông tin, cùng các đồng nghiệp trong trƣờng Đại học Sƣ phạm Kỹ
thuật Nam Định đã giúp chúng tôi hoàn thành tập bài giảng này.
Trong lần biên soạn đầu tiên, tập bài giảng khơng tránh khỏi những sai sót, rất
mong nhận đƣợc các ý kiến đóng góp của các đồng nghiệp và các bạn đọc nhằm giúp
cho chất lƣợng của tập bài giảng đƣợc hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi
về Văn phịng Khoa Cơng nghệ thông tin, trƣờng Đại học Sƣ phạm kỹ thuật Nam
Định.
Chúng tôi xin chân thành cảm ơn!
Nam Định, tháng 12 năm 2014
Nhóm biên soạn
Th.s Nguyễn Văn Trung
Th.s Trần Đình Tùng


Th.s Phan Đức Thiện

i


MỤC LỤC
LỜI NÓI ĐẦU.................................................................................................................. i
CHƢƠNG 1: TỔNG QUAN VỀ PHP VÀ MYSQL ...................................................... 1
1.1. Giới thiệu về mã nguồn mở .................................................................................. 1
1.1.1. Khái niệm phần mềm mã nguồn mở ............................................................. 1
1.1.2. Lợi ích của mã nguồn mở đối với ngƣời phát triển ....................................... 1
1.1.3. Lợi ích của mã nguồn mở đối với ngƣời sử dụng ......................................... 1
1.1.4. Một số phần mềm mã nguồn mở ................................................................... 2
1.2. Giới thiệu về PHP ................................................................................................. 2
1.3. Giới thiệu về MySQL ........................................................................................... 3
1.4. Cài đặt cấu hình PHP, MySQL, Apache .............................................................. 4
1.4.1. Cài đặt Appserv ............................................................................................. 4
1.4.2. Cài đặt Wampserver ...................................................................................... 8
1.5. Xử lý dữ liệu với phpMyAdmin ........................................................................... 8
1.6. Bài tập................................................................................................................. 15
CHƢƠNG 2: LẬP TRÌNH VỚI PHP ........................................................................... 16
2.1. Cấu trúc của PHP ............................................................................................... 16
2.1.1. Câu lệnh trong PHP ..................................................................................... 16
2.1.2. Chú thích trong PHP ................................................................................... 19
2.1.3. In kết quả trong PHP ................................................................................... 20
2.2. Các kiểu dữ liệu trong PHP ................................................................................ 22
2.2.1. Các kiểu dữ liệu trong PHP ......................................................................... 22
2.2.2. Kiểm tra kiểu dữ liệu ................................................................................... 22
2.2.3. Thay đổi kiểu dữ liệu biến........................................................................... 23
2.2.4. Kiểu số nguyên ............................................................................................ 24

2.2.5. Kiểu dấu chấm động .................................................................................... 25
2.2.6. Kiểu chuỗi String ........................................................................................ 26
2.2.7. Kiểu boolean ............................................................................................... 26
2.2.8. Kiểu mảng ................................................................................................... 27
2.2.10. Kiểu đối tƣợng ........................................................................................... 30
2.2.11. Giá trị Null ................................................................................................ 30
2.3. Khái niệm biến, hằng và chuỗi ........................................................................... 30
2.3.1. Biến trong PHP............................................................................................ 30
2.3.2. Hằng ............................................................................................................ 33
2.3.3. Chuỗi ........................................................................................................... 35
2.4. Toán tử và biểu thức ........................................................................................... 35
ii


2.4.1. Biểu thức..........................................................................................................35
2.4.2. Toán tử gán ..................................................................................................35
2.4.3. Toán tử số học .............................................................................................36
2.4.4. Toán tử so sánh ............................................................................................36
2.4.5. Toán tử logic ................................................................................................36
2.4.6. Toán tử kết hợp ............................................................................................37
2.4.7. Độ ƣu tiên các phép toán .............................................................................37
2.5. Mảng ...................................................................................................................38
2.5.1. Mảng một chiều ...........................................................................................38
2.5.2. Mảng hai chiều ............................................................................................40
2.5.3. Các hàm xử lý mảng ....................................................................................43
2.6. Các hàm xử lí chuỗi ............................................................................................48
2.6.1 Quy tắc trong chuỗi ......................................................................................48
2.6.2. Định dạng chuỗi ..........................................................................................49
2.6.3. Hàm chuyển đổi chuỗi .................................................................................50
2.6.4. Hàm tách và kết hợp chuỗi ..........................................................................51

2.6.5. Tìm kiếm và thay thế chuỗi .........................................................................53
2.6.6. Các hàm xử lý chuỗi hay sử dụng ...............................................................58
2.7. Hàm và sử dụng hàm ..........................................................................................62
2.8. Sử dụng include và Require ...............................................................................65
2.8.1. Sử dụng Include ...........................................................................................66
2.8.2. Sử dụng Require ..........................................................................................66
2.8.3. Sự khác nhau giữa Include và Require ........................................................67
2.8.4. Sử dụng Require_once và include_once .....................................................67
2.9. Câu lệnh rẽ nhánh ...............................................................................................67
2.9.1. Câu lệnh if else ............................................................................................67
2.9.2. Câu lệnh switch case ...................................................................................69
2.10. Các cấu trúc lặp ................................................................................................71
2.10.1. Lệnh for .....................................................................................................71
2.10.2. Lệnh foreach ..............................................................................................72
2.10.3. Lệnh while .................................................................................................74
2.10.4. Lệnh do while ............................................................................................74
2.10.5. Lệnh break, continue, goto, die, exit .........................................................75
2.11. Lập trình hƣớng đối tƣợng................................................................................76
2.11.1. Khái niệm về lập trình hƣớng đối tƣợng ...................................................76
2.11.2. Lớp, thuộc tính, phƣơng thức của đối tƣợng .............................................77
2.11.4. Tính kế thừa ...............................................................................................83
iii


2.11.5. Các mức truy cập private protected và public ........................................... 88
2.11.7. Cách sử dụng private, protected và public ................................................ 94
2.11.9 Tính đóng gói trong lập trình hƣớng đối .................................................. 100
2.11.10 Hàm khởi tạo và hàm hủy ...................................................................... 100
2.11.11 Lớp trừu tƣợng (Abstract) ...................................................................... 104
2.11.12. Interface ................................................................................................. 107

2.11.13. Thuộc tính và phƣơng thức tĩnh ............................................................ 109
2.12. Truyền và xử lý dữ liệu trong PHP ................................................................ 113
2.12.1. Truyền và xử lý dữ liệu trong PHP ......................................................... 113
2.12.2. Truyền và xử lý dữ liệu qua URL ........................................................... 114
2.12.3. Truyền và xử lý dữ liệu qua Form........................................................... 118
2.13. Các đối tƣợng cơ bản trong PHP .................................................................... 119
2.13.1. Đối tƣợng Session ................................................................................... 119
2.13.2. Đối tƣợng Cookies .................................................................................. 128
2.13.3. Đối tƣợng Server ..................................................................................... 132
10.14. Các hàm xử lý file trong php ........................................................................ 133
2.14. Bài tập............................................................................................................. 140
CHƢƠNG 3: SỬ DỤNG PHP VỚI MYSQL ............................................................. 158
3.1. Cấu trúc và cú pháp của MySQL ..................................................................... 158
3.1.1. Các kiểu dữ liệu MySQL .......................................................................... 158
3.1.2. NULL/NOT NULL ................................................................................... 161
3.1.3. INDEXES .................................................................................................. 161
3.1.4. UNIQUE .................................................................................................... 161
3.1.5. Tăng tự động (auto Increment).................................................................. 161
3.1.6. Các kiểu bảng của MySQL và kỹ thuật lƣu trữ......................................... 161
3.1.7. Lệnh và cú pháp trong MySQL ................................................................. 163
3.1.8. Các hàm cơ bản trong MySQL ................................................................. 181
3.2. Làm việc với MySQL và PHP ......................................................................... 183
3.2.1. Các hàm cơ bản làm việc giữa PHP và MySQL ....................................... 183
3.2.2. Kết nối MySQL Server ............................................................................. 190
3.2.3. Các thao tác với cơ sở dữ liệu ................................................................... 191
3.2.4. Truy vấn cơ sở dữ liệu............................................................................... 197
3.3. Xây dựng một số trang web kết hợp PHP và MySQL ..................................... 206
3.3.1. Xây dựng trang đăng nhập ........................................................................ 206
3.3.2. Xây dựng trang thêm thành viên ............................................................... 209
3.3.3. Xây dựng trang quản lý thành viên ........................................................... 213

3.3.4. Xây dựng trang xoá sửa thành viên ........................................................... 216
iv


3.3.5. Xây dựng trang tạo mã xác nhận ...............................................................221
3.3.6. Xây dựng trang đếm số ngƣời online ........................................................224
3.3.7. Xây dựng trang bình chọn .........................................................................227
3.3.8. Xây dựng trang upload nhiều file ..............................................................232
3.4. Bài tập ...............................................................................................................238
TÀI LIỆU THAO KHẢO ............................................................................................256

v


DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Cửa số Welcome khi cài AppServ .................................................................. 4
Hình 1.2. Thơng tin giấy phép sử dụng phần mềm ......................................................... 5
Hình 1.3. Chọn thƣ mục để cài đặt .................................................................................. 5
Hình 1.4. Chọn các thành phần cần cài đặt ..................................................................... 5
Hình 1.5. Thơng tin về ngƣời quản lý và port truy cập webserver ................................. 6
Hình 1.6. Nhập mật khẩu cho tài khoản root .................................................................. 6
Hình 1.7. Quá trình cài đặt AppServ ............................................................................... 6
Hình 1.8. Trang chủ của AppServ ................................................................................... 7
Hình 1.9. Đăng nhập vào phpMyAdmin ......................................................................... 7
Hình 1.10. Tạo cơ sở dữ liệu tintuc ................................................................................. 9
Hình 1.11. Tạo bảng dữ liệu ............................................................................................ 9
Hình 1.12. Tạo các trƣờng dữ liệu cho bảng ................................................................. 10
Hình 1.13. Nhập dữ liệu cho bảng ................................................................................ 10
Hình 1.14. Xem dữ liệu của bảng .................................................................................. 11
Hình 1.15. Xố và sửa dữ liệu của bảng ....................................................................... 11

Hình 1.16. Sửa cấu trúc bảng ........................................................................................ 12
Hình 1.17. Đổi tên bảng dữ liệu .................................................................................... 12
Hình 1.18. Xố bảng dữ liệu ......................................................................................... 13
Hình 1.19. Import dữ liệu từ file sql.............................................................................. 13
Hình 1.20. Export dữ liệu từ file sql.............................................................................. 14
Hình 1.21. Xố cơ sở dữ liệu......................................................................................... 15
Hình 2.1. Q trình thơng dịch trang PHP .................................................................... 16
Hình 2.2. Kết quả thực hiện trang hello.php ................................................................. 17
Hình 2.3. Kết quả thực hiện trang script.php ................................................................ 18
Hình 2.4. Kết quả thực hiện trang echo.php.................................................................. 22
Hình 2.5. Kết quả khi triệu gọi trang arrayone.php. ..................................................... 40
Hình 2.6. Kết quả thực hiện arraytwo.php .................................................................... 42
Hình 2.7. Kết quả thực hiện trang mang.php ................................................................ 43
Hình 2.8. Kết quản thực hiện sắp xếp mảng ................................................................. 43
Hình 2.9. Định dạng chuỗi in ........................................................................................ 49
Hình 2.10. Chuyển đổi chuỗi ........................................................................................ 51
Hình 2.11. Kết quả sử dụng hàm tách chuỗi ................................................................. 52
Hình 2.12. Kết quả sử dụng hàm kết hợp chuỗi ............................................................ 53
Hình 2.13. Kết quả sử dụng hàm thay thế chuỗi ........................................................... 54
Hình 2.14. Hoạt động của Include................................................................................. 66
vi


Hình 2.15. Trừu tƣợng hố dữ liệu ................................................................................81
Hình 2.16. Các đối tƣợng trong trong thế giới thực ......................................................82
Hình 2.17. Kết quả chạy file movie1.php ....................................................................116
Hình 2.18. Lấy dữ liệu truyền theo url ........................................................................116
Hình 2.19. Lấy dữ liệu bằng $_request .......................................................................117
Hình 2.20. Kết quả thực hiện .......................................................................................117
Hình 2.21. Nhận dạng Session ....................................................................................120

Hình 2.22. Đăng ký Session ........................................................................................121
Hình 2.23. Lấy giá trị của session ...............................................................................122
Hình 2.24. Lỗi phát sinh truy cập session chƣa tồn tại................................................123
Hình 2.25. Khơng có lỗi phát sinh gọi trang checksession.php ..................................124
Hình 2.26. Loại bỏ session ..........................................................................................125
Hình 2.27. Huỷ session ................................................................................................126
Hình 2.28. Đăng ký cookie ..........................................................................................130
Hình 2.29. Dùng $HTTP_COOKIE_VARS ...............................................................131
Hình 3.1. Thêm bản ghi ...............................................................................................192
Hình 3.2. Thực thi trang cập nhật dữ liệu ....................................................................195
Hình 3.3. Thực thi xố một bản ghi.............................................................................197
Hình 3.4. Liệt kê bản ghi .............................................................................................198
Hình 3.5. Liệt kê danh sách lại sản phẩm ....................................................................199
Hình 3.6. Liệt kê danh sách loại sách ..........................................................................202
Hình 3.7. Liệt kê danh sách sản phẩm duyệt hay chƣa ...............................................205
Hình 3.8. Giao diện trang đăng nhập ...........................................................................206
Hình 3.9. Giao diện trang thêm thành viên .................................................................210
Hình 3.10. Giao diện trang sửa thanh viên ..................................................................217
Hình 3.11. Giao diện trang tạo mã xác nhận ...............................................................222
Hình 3.12. Giao diện trang bình chọn .........................................................................229
Hình 3.13. Giao diện trang kết quả bình chọn .............................................................232
Hình 3.14. Giao diện trang Upload file .......................................................................234

vii



CHƢƠNG 1: TỔNG QUAN VỀ PHP VÀ MYSQL
1.1. Giới thiệu về mã nguồn mở
1.1.1. Khái niệm phần mềm mã nguồn mở

Open Source: Mã nguồn mở.
Open Source Software: Phần mềm mã nguồn mở.
Free Software: Phần mềm miễn phí, đơi khi free software đƣợc dùng với ý
nghĩa bao gồm cả open source software và free software.
Phần mềm nguồn mở (PMNM) là những phần mềm đƣợc cung cấp dƣới cả
dạng mã và nguồn, khơng chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản
quyền: ngƣời dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên
tắc chung qui định trong giấy phép PMNM (ví dụ General Public Licence – GPL) mà
không cần xin phép ai, điều mà họ không đƣợc phép làm đối với các phần mềm nguồn
đóng (tức là phần mềm thƣơng mại).
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu ngƣời dùng trả một số chi
phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tƣ vấn, vv… tức là những dịch vụ thực
sự đã thực hiện để phục vụ ngƣời dùng, nhƣng không đƣợc bán các sản phẩm nguồn mở
vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào.
Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chƣơng trình
cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chƣơng trình, chỉnh sữa
phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản
cho nhiều ngƣời, quyền tự do cải tiến chƣơng trình và phát hành những bản cải tiến vì
mục đích cơng cộng.
1.1.2. Lợi ích của mã nguồn mở đối với ngƣời phát triển
Đối với lập trình viên và ngƣời sản xuất phần mềm, sự tự do đáng kể sẽ thay
đổi các qui định của cuộc chơi. Nó làm cho dễ dàng hơn để tiếp tục cạnh tranh trong
khi vẫn là nhỏ và để có đƣợc cơng nghệ hiện đại. Nó cho phép chúng ta tận dụng đƣợc
ƣu thế công việc của những ngƣời khác, cạnh tranh ngay cả với sản phẩm khác bằng
việc sửa đổi mã nguồn của riêng mình, dù đối thủ cạnh tranh sao chụp đƣợc có thể sau
đó cũng tận dụng đƣợc ƣu thế về mã nguồn của chúng ta (nếu nó là copyleft). Nếu dự
án đƣợc quản lý tốt, thì có khả năng có đƣợc sự hợp tác tự do của một số lƣợng ngƣời
lớn, hơn nữa, để có đƣợc sự truy cập tới một hệ thống phân phối gần nhƣ hoàn toàn tự
do và toàn cầu. Dẫu rằng, vấn đề còn lại là làm thế nào để có đƣợc những tài ngun
về tài chính, nếu phần mềm khơng phải là sản phẩm để bán vì tiền hoa hồng.

1.1.3. Lợi ích của mã nguồn mở đối với ngƣời sử dụng
Lợi ích lớn nhất trong việc chuyển đổi sang phần mềm tự do nguồn mở là giảm
tổng chi phí sở hữu, từ các yếu tố sau:
- Miễn phí bản quyền phần mềm
1


- Miễn phí các phiên bản nâng cấp trong tồn bộ vịng đời sử dụng sản phẩm
- Giảm chi phí phát triển phần mềm đáp ứng theo yêu cầu nghiệp vụ (sử dụng
phần mềm, mơ-đun có sẵn để phát triển tiếp, sửa đổi điều chỉnh cho phù hợp với
nghiệp vụ)
- Kéo dài thời gian sử dụng/tái sử dụng các phần cứng, thiết bị trong khi vẫn
đảm bảo hiệu năng toàn hệ thống
- Chi phí đầu tƣ, vận hành hệ thống tập trung cho các dịch vụ “hữu hình” đem
lại giá trị trực tiếp, thiết thực cho tổ chức nhƣ: tƣ vấn, sửa đổi theo yêu cầu, triển khai,
đào tạo, bảo trì, nâng cấp hệ thống...
- Mức chi phí tiết kiệm khoảng 75-80% so với phần mềm license ngay trong
năm đầu tiên.
Giảm tối đa sự phụ thuộc vào một vài nhà cung cấp phần mềm dẫn đến dịch vụ
kém (do không có cạnh tranh), hoặc “bị ép” trong các trƣờng hợp cần đàm phán về chi
phí, dịch vụ (mỗi FLOSS có thể có nhiều nhà cung cấp dịch vụ tƣơng tự), nâng cấp
phần mềm, mở rộng hệ thống (với mã nguồn trong tay, có thể dễ dàng nâng cấp, mở
rộng hệ thống theo yêu cầu trong mỗi giai đoạn phát triển).
Đối với các hệ thống đang hoạt động, chủ động thực hiện chuyển đổi sẽ tránh
đƣợc “nguy cơ” bị phạt vi phạm bản quyền và/hoặc bị “bắt buộc” mua license.
Tăng tính thƣơng hiệu cho doanh nghiệp khi giới thiệu đƣợc với cộng đồng, đối
tác, khách hàng (đặc biệt là ngoài nƣớc) và không vi phạm bản quyền.
Tăng cƣờng độ tin cậy, ổn định, tính an tồn, bảo mật (theo báo cáo của Gartner
& nhiều tổ chức phân tích độc lập) tồn hệ thống.
1.1.4. Một số phần mềm mã nguồn mở

OpenOffice: Bộ cơng cụ phần mềm văn phịng mã nguồn mở, miễn phí và
tƣơng thích với các định dạng tài liệu của Microsoft Office.
UniKey: Công cụ hỗ trợ gõ tiếng Việt trên mơi trƣờng Windows, miễn phí và
hiệu quả. Hỗ trợ nhiều bảng mã tiếng Việt và nhiều kiểu gõ tiếng Việt khác nhau. Tích
hợp cơng cụ chuyển đổi giữa các bảng mã tiếng Việt với nhau.
Mozilla Firefox: Trình duyệt web mã nguồn mở phổ biến và tốt nhất hiện nay.
Hệ điều hành của Linux dành cho máy bàn (PC) và máy tính xách tay (Laptop,
Netbook...): Ubuntu, Fedora, Hacao, Redhat, CentOS, …
Cổng thông tin điện tử: Liferay, Uportal, DotnetNuke, ExoPlatform,
DotnetNuke, Joomla, Moodle …
Diễn đàn: phpBB, Jforum, mvnForum, SMF …
1.2. Giới thiệu về PHP
PHP viết tắt của chữ Personal Home Page ra đời năm 1994 do phát minh của
Rasmus Lerdorf, và nó tiếp tục đƣợc phát triển bởi nhiều cá nhân và tập thể khác, do
2


đó PHP đƣợc xem nhƣ một sản phẩm mã nguồn mở. PHP là kịch bản trình chủ (server
script) chạy trên phía server (server side) nhƣ các server script khác (asp, jsp, cold
fusion). PHP là kịch bản cho phép xây dựng ứng dụng web trên mạng internet hay
intranet tƣơng tác với mọi cơ sở dữ liệu nhƣ mySQL, Oracle, SQL Server và Access.
Lƣu ý: Từ phiên bản 4.0 trở về sau mới hỗ trợ session, ngoài ra PHP xử lý
chuỗi rất mạnh, vì vậy có thể sử dụng PHP trong những có yêu cầu về xử lý chuỗi.
1.3. Giới thiệu về MySQL
MySQL, cơ sở dữ liệu SQL mã nguồn mở thông dụng nhất , đƣợc cung cấp bởi
MySQL AB. MySQL AB là một công ty thƣơng mại thực hiện việc tạo ra các dịch vụ
cung cấp cho doanh nghiệp đó xung quanh cơ sở dữ liệu MySQL.
MySQL là một hệ quản trị cơ sở dữ liệu (CSDL): Một CSDL là một tập hợp
cấu trúc của dữ liệu. Nó có thể là bất kỳ một cái gì từ một danh sách bán hàng đơn
giản cho tới gallery ảnh hoặc số lƣợng lớn các thông tin trong một mạng doanh nghiệp.

Để thêm, truy nhập và xử lý dữ liệu đƣợc lƣu trữ trong một CSDL máy tính, ta cần
một hệ quản trị CSDL nhƣ MySQL. Từ khi các máy tính thực hiện tốt việc xử lý lƣợng
lớn dữ liệu, quản trị CSDL đóng một vai trị chính yếu trong việc tính tốn, nhƣ là các
công cụ đơn lẻ, hoặc một phần của các ứng dụng khác.
MySQL là một hệ quản trị CSDL quan hệ: Một CSDL quan hệ lƣu trữ dữ liệu
trong trong một số bảng chuyên biệt tốt hơn là việc đặt toàn bộ dữ liệu trong một nơi
lƣu trữlớn. Điều này làm tăng thêm tốc độ và sự linh hoạt. Các bảng đƣợc liên kết với
nhau bằng cách định nghĩa các quan hệ tạo cho nó khả năng kết nối dữ liệu từ một vài
bảng khác nhau theo yêu cầu. SQL là một phần của MySQL trong “Structured Query
Language”- ngôn ngữ chuẩn thông dụng nhất đƣợc dùng để truy nhập các CSDL.
MySQL là một phần mềm mã nguồn mở: Mã nguồn mở có nghĩa là nó có thể
đƣợc sử dụng bởi bất kỳ ai cho mục đích sử dụng hoặc thay đổi nào. Bất kỳ ai cũng có
thể download MySQL từ internet và sử dụng nó mà khơng phải trả bất kỳ một thứ gì.
Bất kỳ ai có ý thích cũng có thể nghiên cứu mã nguồn và thay đổi chúng theo yêu cầu
của riêng mình. MySQL dùng GPL (GNU General Public License) để định ra ta có thể
đƣợc làm gì và khơng đƣợc làm gì với phần mềm trong các hồn cảnh khác nhau. Nếu
ta cảm thấy khó chịu với GPL hoặc muốn nhúng MySQL trong một ứng dụng thƣơng
mại thì ta có thể mua một bản quyền thƣơng mại từ các nhà cung cấp.
Lý do dùng MySQL: MySQL nhanh, đáng tin cậy và dễ dàng để sử dụng.
MySQL cũng có một tập các đặc điểm rất thiết thực đƣợc phát triển trong một sự hợp
tác rất chặt chẽ với ngƣời sử dụng. Có thể đem so sánh giữa MySQL và một số hệ
quản trị CSDL khác trong trang web chấm điểm của nhà cung cấp.
MySQL đã đƣợc phát triển một cách sáng tạo để nắm bắt các CSDL rất lớn và
nhanh hơn rất nhiều các giải pháp hiện tại và đã thành công trong việc đƣợc sử dụng
3


trong các mơi trƣờng sản xuất địi hỏi cao trong vài năm. Thơng qua q trình phát
triển khơng ngừng, ngày nay, MySQL cung cấp một tập các hàm rất hữu ích và dồi
dào. Sự kết nối, tốc độ và sự bảo mật đã làm cho MySQL trở nên thích ứng cao cho

việc truy cập các CSDL trên internet.
Các đặc điểm về mặt kỹ thuật của MySQL: MySQL là một hệ thống
client/server bao gồm một SQL server đa luồng cho phép hỗ trợ nhiều thiết bị đầu cuối
khác nhau, một vài chƣơng trình client khác nhau và các thƣ viện, các cơng cụ quản trị
và một vài giao diện lập trình.
Các nhà cung cấp cũng cung cấp MySQL nhƣ là một thƣ viện đa luồng mà ta có
thể kết nối trong ứng dụng của ta để đạt tới một sản phẩm nhỏ hơn, nhanh hơn, dễ
dàng quản lý hơn.
MySQL có nhiều các phần mềm đƣợc phân phối có sẵn. Điều này thật sự thuận
tiện cho ta trong việc tìm ứng dụng u thích của ta hoặc ngơn ngữ hỗ trợ MySQL
1.4. Cài đặt cấu hình PHP, MySQL, Apache
Phần mềm Appserv và Wampserver khi cài đặt là tự động cấu hình webserver
và php, mysql, apache và các ứng dụng nhƣ phpmyadmin, sqllitemanager.
1.4.1. Cài đặt Appserv
Tải phần mềm Appserv tại địa chỉ />Chạy file cài đặt màn hình đầu tiên là.

Hình 1.1. Cửa số Welcome khi cài AppServ
Nhấn Next để sang bƣớc tiếp

4


Hình 1.2. Thơng tin giấy phép sử dụng phần mềm
Nhấn Igree để đồng ý giấy phép sử dụng phần mềm

Hình 1.3. Chọn thư mục để cài đặt
Nhấn Browse … để chọn thƣ mục cài đặt sau đó nhấn Next để tiếp tục

Hình 1.4. Chọn các thành phần cần cài đặt
5



Lựa chọn các thành phần cần cài đặt nhấn Next để tiếp tục

Hình 1.5. Thơng tin về người quản lý và port truy cập webserver
Nhập tên tài khoản, địa chỉ e-mail của ngƣời quản lý; thiết lập cổng http để truy
cập webserver nhấn Next để tiếp tục.

Hình 1.6. Nhập mật khẩu cho tài khoản root
Nhập mật khẩu để đăng nhập hệ quản trị cơ sở dữ liệu MySQL nhấn Install để
tiến hành cài đặt.

Hình 1.7. Quá trình cài đặt AppServ
6


Khi kết thúc quá trình cài đặt tạo một Server ảo chạy web PHP. Với cài đặt mặc định.
- C:\AppServ\www là địa chỉ webroot, nơi copy các file php.
- C:\AppServ\mysql\data\ chứa CSDL MySQL, mỗi CSDL sẽ là mọt folder, để
sao lƣu dữ liệu MySQL, đơn gian chỉ việc copy folder này thành nhiều bản sao.
- Để quản trị CSDL MySQL, truy nhập địa chỉ sau từ trình
duyệt: http://localhost/phpMyAdmin.
- Vào http://localhost/phpinfo.php để xem thông tin đầy đủ về server vừa cài.
- Thƣ mục tƣơng tự trên host public_html mặc định là C:\AppServ\www là địa
chỉ webroot, nơi copy các file php. Mở trình duyệt web đánh địa chỉ http://localhost

Hình 1.8. Trang chủ của AppServ
Nhấn vào dòng phpMyAdmin Database Manager Version 2.9.0.2 để vào quản
lý, tạo database


Hình 1.9. Đăng nhập vào phpMyAdmin
7


1.4.2. Cài đặt Wampserver
Wampserver là một phần mềm mã nguồn mở giúp đơn giản q trình thiết lập
mơi trƣờng thực thi ứng dụng PHP trên hệ điều hành Windows. Các thành phần
của Wampserver bao gồm Apache, MySQL và PHP, nhƣ vậy chỉ cần cài
dặt Wampserver lên máy là đã có đủ môi trƣờng để chạy các ứng dụng PHP.
Bƣớc 1: Để bắt đầu cài đặt Wampserver click đúp vào file Wampserver vừa
download về, sau dó chọn Next để bắt đầu quá trình cài đặt.
Bƣớc 2: Nhấn chọn I accept the agreement và nhấn Next để tiếp tục
Bƣớc 3: Thƣ mục cài đặc mặc định của Wampserver là C:\wamp, nếu muốn
thay đổi nhấn vào nút Browse và trỏ tới thƣ mục mới sau đó nhấn Next để tiếp tục
Bƣớc 4: Chọn Next ở bƣớc tiếp theo
Bƣớc 5: Chọn Install để bắt đầu quá trình cài đặt Wampserver
Bƣớc 6: Màn hình cài đặt Wampserver
Bƣớc 7: Để thông tin mặc định cho bƣớc này và nhấn Next
Bƣớc 8: Hoàn thành các bƣớc cài đặt
Bƣớc 9: Đến đây là đã cài đặt thành công Wampserver. Sau khi chạy thì
Wampserver sẻ hiển thị ở khay đồng hồ.
Biểu tƣợng Wampserver: Màu đỏ: Wampserver chƣa hoạt động, Màu cam bị lỗi
port (lỗi này có nhiều nguyên nhân nhƣng nguyên nhân chủ yếu là do lỗi xung đột
port, mặc định Wampserver chạy port 80), Màu xanh: Wampserver đã chạy
Để tiến hành sửa lỗi nhƣ ta làm nhƣ sau:
Nếu ở bƣớc 3 không thay đổi thƣ mục cài đặt của Wampserver thì theo đƣờng
dẫn sau:
C:\wamp\bin\apache\Apache2.x\httpd.conf
Mở file httpd.conf và chỉnh lại port : tìm kiếm với giá trị 80 đỗi thành 8080)
Bƣớc 11: Restart lại Wampserver bằng cách kick chuột trái vào biểu tƣợng

Wampserver ở khay đồng hồ chọn Restart All Services
Sau khi Restart lại Wampserver nếu khơng lỗi gì thì Wampserver sẻ chuyển qua
màu xanh nhƣ hình thì cài đặt thành công.
1.5. Xử lý dữ liệu với phpMyAdmin
MySQL là hệ quản trị cơ sở dữ liệu rất tốt cho Web PHP và nó là miễn phí và
đƣợc tích hợp trong gói đã cài đặt trƣớc: gồm PHP, cài đặt PHP, Apache, MYSQL và
phpMyadmin. Bây giờ chúng ta sẽ tiến hành các thao tác tạo, thêm, xóa sửa cơ sở dữ
liệu trên giao diện phpMyadmin.
1) Mở phpMyAdmin
Mở trình duyệt web nào và gõ http://localhost:port/phpMyAdmin và đăng nhập.
(port là cổng truy cập Webserver).
8


2) Tạo Database
Bƣớc 1. Nhấn Home chọn Tab database
Bƣớc 2. Trong mục Create database, khai báo.
Đặt tên cho cơ sở dữ liệu
Chọn utf8_general_ci (thể hiện đƣợc tiếng việt)
Bƣớc 3. Nhấn Create để tạo cơ sở dữ liệu
Ví dụ: Tạo database có tên là tintuc

1
3
2

Hình 1.10. Tạo cơ sở dữ liệu tintuc
3) Tạo Table
Bƣớc 1. Chọn database muốn tạo bảng
Bƣớc 2. Mục Name: khai báo tên table muốn tạo

Bƣớc 3. Mục Number of columns: khai báo số cột trong table
Bƣớc 4. Nhấn nút Go

2

3
4

1

Hình 1.11. Tạo bảng dữ liệu
Bƣớc 5. Khai báo các các cột trong table
Bƣớc 6. Nhấn nút Save

9


5

6

Hình 1.12. Tạo các trường dữ liệu cho bảng
4) Thêm dữ liệu vào Table
Bƣớc 1. Chọn table
Bƣớc 2. Nhấn link Insert
Bƣớc 3. Nhập dữ liệu
Bƣớc 4. Nhấn nút Go
Ví dụ: Thêm 2 record vào table theloai nhƣ sau:
TenTL


ThuTu

AnHien

Tin xã hội

1

1

Giải trí

2

2
2

3

1

4

Hình 1.13. Nhập dữ liệu cho bảng

10


5) Xem dữ liệu trong Table
Bƣớc 1. Chọn table muốn xem dữ liệu

Bƣớc 2. Nhấn link Browse.
Mỗi lần hiện 25 records
Ví dụ: Xem dữ liệu trong table theloai.

2

1

Hình 1.14. Xem dữ liệu của bảng
6) Xóa/Sửa dữ liệu trong Table
Bƣớc 1. Chọn table muốn xóa sửa (ví dụ theloai).
Bƣớc 2. Nhấn link Browse.
Bƣớc 3. Hiệu chỉnh/xóa.
Sửa record: Nhấn nút Edit (chiếc bút chì) trên dịng chứa record.
Xóa record : Nhấn nút Delete trên dịng chứa record.

2

1
3

Hình 1.15. Xố và sửa dữ liệu của bảng
11


7) Sửa cấu trúc Table
Bƣớc 1. Chọn table
Bƣớc 2. Nhấn link Structure
Bƣớc 3.
Chỉnh field: Nhấn nút Change

Xóa field : Nhấn nút Drop
Thêm cột : Nhấn nút Go trong mục Add

Hình 1.16. Sửa cấu trúc bảng
8) Đổi tên Table
Bƣớc 1. Chọn table cần đổi tên
Bƣớc 2. Nhấn link Operations
Bƣớc 3. Rename table to: gõ tên mới
Bƣớc 4. Nhấn nút Go
Ví dụ: Đổi tên table theloai thành theloaitin

2
13
1

4

Hình 1.17. Đổi tên bảng dữ liệu
9) Xóa Table
Bƣớc 1. Chọn cơ sở dữ liệu
12


Bƣớc 2. Chọn bảng cấn xóa và nhấn link Drop
Ví dụ: Xóa table theloaitin

2

1


Hình 1.18. Xố bảng dữ liệu
10) Import Table
Bƣớc 1. Chọn database
Bƣớc 2. Nhấn link Import
Bƣớc 3. Nhấn nút Browse để chọn file .sql
Bƣớc 4. Nhấn nút Go
Ví dụ: Import dữ liệu từ file db1.sql

2

1

3

4

Hình 1.19. Import dữ liệu từ file sql
13


11) Export Table
Bƣớc 1. Chọn database cần export
Bƣớc 2. Nhấn link Export
Bƣớc 3. Export: chọn các table cần export
Bƣớc 4. Chọn Save output to a file
Bƣớc 5. Chọn kiểu file là SQL và nhấn nút Save
Ví dụ: Export tất cả các table trong database tintuc ra file dbtin.sql

2


1
3

4

5

Hình 1.20. Export dữ liệu từ file sql
12) Xoá Database
Bƣớc 1. Nhấn tên database
Bƣớc 2. Nhấn link Drop
Ví dụ: Xóa database tintuc

14


1

2
3

Hình 1.21. Xố cơ sở dữ liệu
1.6. Bài tập
1. Cài đặt và cấu hình Webserver bằng phần mềm Appserv.
2. Cài đặt và cấu hình Webserver bằng phần mềm Wampserver.
3. Sử dụng phpmyAdmin để tạo cơ sở dữ liệu

15



CHƢƠNG 2: LẬP TRÌNH VỚI PHP
2.1. Cấu trúc của PHP
2.1.1. Câu lệnh trong PHP
PHP là kịch bản trình chủ (Server Script) đƣợc chạy trên nền PHP Engine, cùng
với ứng dụng Web Server để quản lý chúng. Web Server thƣờng sử dụng là IIS,
Apache Web Server, ...
Thông dịch trang PHP
Khi ngƣời sử dụng gọi trang PHP, Web Server triệu gọi PHP Engine để thông
dịch trang PHP và trả về kết quả cho ngƣời sử dụng nhƣ hình sau:

Hình 2.1. Quá trình thơng dịch trang PHP
Dùng một chƣơng trình soạn thảo văn bản nhƣ notepad hoặc các phần mềm hỗ
trợ soạn thảo PHP Design, EditPlus, Dreamweaver, notepad++, Netbean,
zendstudio … . Đặt tên cho các tập tin là *.php.
Đối với PHP cho phép xen kẽ giữa lệnh HTML và lệnh PHP. Do đó, PHP đƣợc
xem nhƣ là một script giống nhƣ Javascript hay Vbscript.
Các lệnh của PHP sử dụng cú pháp nhƣ sau:
Cách 1 : Cú pháp chính:
<?php Mã lệnh PHP ?>
Cách 2: Cú pháp ngắn gọn
<? Mã lệnh PHP ?>
Cách 3: Cú pháp giống với ASP.
<% Mã lệnh PHP %>
16


Cách 4: Cú pháp bắt đầu bằng script
<script language=php>
.....
</script>

Trong PHP để kết thúc một dòng lệnh ta sử dụng dấu ";"
Ví dụ:
1-Giá trị biến Str: <?=$groupid?>
2-Giá trị biến i: <?=$i?>
3-Giá trị cũ thể: <?=10?>
Chẳng hạn khai báo trang hello.php với nội dung nhƣ ví dụ sau:
Ví dụ: Trang hello.php
<HTML>
<HEAD>
<TITLE>::Welcome to PHP</TITLE>
</HEAD>
<BODY>
Greeting: <?="Hello PHP"?>
</BODY>
</HTML>
Kết quả trả về nhƣ hình khi triệu gọi trang này trên trình duyệt.

Hình 2.2. Kết quả thực hiện trang hello.php
Ví dụ:
$sotrang=$pagenumber;
$record=$rownumber;
$totalRows = 0;
$paging="";
?>
17


×