i
LỜI NÓI ĐẦU
Ngày nay việc sử dụng Internet các dịch vụ trên Internet một phần tất yếu
của cuộc sống. Công nghệ Internet các ứng dụng phát trển trên nền Web 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
quí giá phục vụ cho nghiên cứu, cho kinh doanh, cho giải t vy ngày càng
nhiều ứng dụng trên Internet, sử dụng giao diện Web. Các ng nghệ phát triển Web
ngày một hoàn thiện.
Tập bài giảng giới thiệu công nghphổ biến nhất đƣợc ng để tạo các web site
động: Ngôn ngữ kịch bản PHP chƣơng trình quản sở dữ liệu MySQL. Đây là
công nghệ rất mạnh và hiệu quả để khai triển khai c dán mã nguồn mở cũng nhƣ
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 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 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 ng nghệ thông tin, cùng các đồng nghiệp trong trƣờng Đại học 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 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 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
ii
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 mm 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 mm 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
iii
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
iv
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
v
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