32
Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2)

Web201 slide 2

Embed Size (px)

DESCRIPTION

Lập Trình PHP Cơ Bản - Giáo Trình FPT

Citation preview

Page 1: Web201   slide 2

Bài 2:LÀM QUEN VỚI MÔI TRƯỜNG

PHP VÀ MYSQL (PHẦN 2)

Page 2: Web201   slide 2

Nội dung bài học

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 2

1. Giới thiệu về cơ sở dữ liệu quan hệ và MySQL

2. Hướng dẫn sử dụng PHP với MySQL

3. Giới thiệu về mô hình MVC

Page 3: Web201   slide 2

Trong phần này có các nội dung:1.1. Giới thiệu về cơ sở dữ liệu quan hệ1.2. Các kiểu dữ liệu thông dụng trong MySQL1.3. Các câu lệnh dùng để thao tác dữ liệu trong SQL1.4. Giới thiệu MySQL1.5. Sử dụng phpMyAdmin

1. Giới thiệu vềcơ sở dữ liệu quan hệ và MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 3

Page 4: Web201   slide 2

Tổ chức các bảng trong cơ sở dữ liệu:Hệ cơ sở dữ liệu quan hệ bao gồm các bảng. Bảng chứa dòng (bản ghi)và cột (trường)Cột biểu thị thuộc tính của thực thểDòng chứa tập hợp các dữ liệu của thực thểGiao điểm giữa dòng và cột thường được gọi là ôKhóa chính dùng để phân biệt các dòng trong bảngKhóa ngoại dùng để liên kết giữa các bảng

1.1. Giới thiệu vềcơ sở dữ liệu quan hệ

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 4

Page 5: Web201   slide 2

Quan hệ giữa hai bảng trong cơ sở dữ liệu:Bảng trong cơ sở dữ liệu quan hệ được liên kết với nhau qua các cộtKhi xác định khóa ngoại, muốn thêm dòng cho bảng có khóa ngoại, bạnphải định giá trị của cột đó từ một khóa chính trong bảng liên kếtMột bảng có thể có quan hệ một - một và quan hệ nhiều - nhiều vớibảng khác

Giới thiệu vềcơ sở dữ liệu quan hệ

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 5

Page 6: Web201   slide 2

Một số kiểu dữ liệu thông dụng:Char: chuỗi ký tự có độ dài cố định trong bộ ký tự ASCIIVarchar: chuỗi ký tự có độ dài thay đổi trong bộ ký tự ASCIIInt: giá trị nguyên nhiều kích cỡDecimal: giá trị thập phân, chứa dấu phẩy động để ngăn cách phầnnguyên và phần thập phânDate, Time: ngày, giờ

1.2. Các kiểu dữ liệuthông dụng trong MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 6

Page 7: Web201   slide 2

Ngoài ra còn có:Null: giá trị không xác địnhGiá trị mặc định (default): giá trị này được thay thế khi một hàng đượcthêm vào nhưng không được xác định giá trịCột tự tăng: giá trị của nó là số tự động tăng khi một dòng được thêmvào bảng

Các kiểu dữ liệuthông dụng trong MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 7

Page 8: Web201   slide 2

Chọn dữ liệu từ một bảng:Để xác định cột, sử dụng mệnh đề SELECTĐể xác định bảng muốn truy xuất dữ liệu, sử dụng mệnh đề FROMĐể xác định dòng, sử dụng mệnh đề WHEREĐể xác định kiểu sắp kết quả, sử dụng mệnh đề ORDER BY

1.3. Các câu lệnhthao tác dữ liệu trong SQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 8

Page 9: Web201   slide 2

Chọn dữ liệu từ nhiều bảng:Sử dụng mệnh đề JOIN để liên kết các bảng với nhauINNER JOIN: các dòng chỉ được trả về trong tập kết quả nếu khóa củadòng ở bảng thứ nhất bằng (khớp) với khóa của dòng ở bảng thứ haiOUTER JOIN: trả về các dòng từ một bảng trong liên nối ngay cả khibảng kia không có dòng phù hợpLEFT/RIGHT OUTER JOIN: dữ liệu của tất cả các dòng trong bảng bêntrái/phải được trả về bảng kết quả, song chỉ những dữ liệu của dòngphù hợp trong bảng còn lại được thêm vào

Các câu lệnhthao tác dữ liệu trong SQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 9

Page 10: Web201   slide 2

Thêm dữ liệu:Cú pháp:

INSERT INTO <Tên bảng> [<Danh sách cột>]VALUES (<Danh sách giá trị tương ứng với cột>)

Ví dụ: INSERT INTO products (categoryID, productCode, productName,listPrice) VALUES (1, 'tele', 'Fender', 599.00)

Sửa dữ liệu:Cú pháp: UPDATE <Tên bảng>

SET <Danh sách biểu thức>WHERE <Các điều kiện>

Ví dụ: UPDATE products SET listPrice=610 WHEREproductName=‘Fender’

Các câu lệnhthao tác dữ liệu trong SQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 10

Page 11: Web201   slide 2

MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mởMySQL được cung cấp trong gói phần mềm XAMPP hoặc có thể càiriêng biệtƯu điểm:

Rẻ: Hầu hết các tính năng của MySQL được cung cấp miễn phí, các tínhnăng khác tương đối rẻ so với các sản phẩm cùng dòngNhanh: MySQL là một trong những cơ sở dữ liệu nhanh nhất hiện nayDễ dùng: So với các hệ quản trị cơ sở dữ liệu khác, MySQL dễ cài đặtvà sử dụngLinh động: MySQL chạy trên hầu hết các hệ điều hành hiện đại nhưWindows, Unix, Solaris và OS/2

1.4. Giới thiệu MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 11

Page 12: Web201   slide 2

phpMyAdmin là ứng dụng quản trị hệ cơ sở dữ liệu MySQLKhởi động phpMyAdmin:

Khởi động XAMPPNhấn nút Admin của dòng MySQL

1.5. Sử dụng phpMyAdmin

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 12

Page 13: Web201   slide 2

Giao diện của phpMyAdmin:

Sử dụng phpMyAdmin

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 13

Page 14: Web201   slide 2

Thực thi các câu truy vấn:

Sử dụng phpMyAdmin

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 14

Page 15: Web201   slide 2

Import file chứa các câu truy vấn SQL:

Sử dụng phpMyAdmin

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 15

Page 16: Web201   slide 2

Xem dữ liệu và cấu trúc bảng:

Sử dụng phpMyAdmin

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 16

Page 17: Web201   slide 2

Trong phần này có các nội dung:2.1. Sử dụng PHP để làm việc với MySQL2.2. Lấy dữ liệu từ tập kết quả

2. Hướng dẫn sử dụng PHP với MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 17

Page 18: Web201   slide 2

Làm việc với MySQL: sử dụng đối tượng PDO (PHP Data Objects)Kết nối tới MySQL:

Tạo DSN (Data Source Name) xác định tên máy chủ và tên cơ sở dữliệu:

Tạo đối tượng PDO với ba đối số: DSN, tên tài khoản quản trị cơ sở dữliệu và mật khẩu:

Ví dụ:

2.1. Sử dụng PHPđể làm việc với MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 18

Page 19: Web201   slide 2

Thực thi câu lệnh SELECT và lưu kết quả vào một biến:Sử dụng phương thức query của đối tượng PDO:

Ví dụ:

Sử dụng PHPđể làm việc với MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 19

Page 20: Web201   slide 2

Thực thi câu lệnh INSERT, UPDATE, DELETE:Sử dụng phương thức exec của đối tượng PDO:

Ví dụ:

Sử dụng PHPđể làm việc với MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 20

Page 21: Web201   slide 2

Xử lý ngoại lệ với try catch:Ngoại lệ là đối tượng chứa thông tin về lỗi xảy ra. Một số câu lệnh PHPsẽ vứt ra ngoại lệ khi chúng gặp lỗi. Nếu một ngoại lệ không được xử lýthì ứng dụng PHP sẽ kết thúc ngayĐể xử lý ngoại lệ ta dùng cấu trúc try catch với cú pháp:

Cú pháp:

Sử dụng PHPđể làm việc với MySQL

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 21

Page 22: Web201   slide 2

Làm việc với mảng:Khởi tạo mảng: $Mang = array(<Số phần tử>);Gán giá trị cho một phần tử của mảng:

Kiểu chỉ mục: $Mang[<số thứ tự phần tử>] = <giá trị>Kiểu chuỗi: $Mang[<chuỗi tên phần tử>] = <giá trị>

Lấy giá trị của một phần tử của mảng:Kiểu chỉ mục: $Bien = $Mang[<số thứ tự phần tử>]Kiểu chuỗi: $Bien = $Mang[<chuỗi tên phần tử>]

2.2. Lấy dữ liệu từ tập kết quả

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 22

Page 23: Web201   slide 2

Lấy dữ liệu từ hàng đầu tiên của tập kết quả:Sử dụng hàm fetch để lấy dữ liệu hàng đầu tiên của tập kết quả, sauđó dùng một biến để lưu dữ liệu trả vềCú pháp: $Bien = $KetQua->fetch();

Lấy dữ liệu từ tất cả các hàng trong tập kết quả:Sử dụng cấu trúc vòng lặp foreach để lấy dữ liệu từ từng hàng của tậpkết quảDữ liệu từ từng hàng của tập kết quả được lưu vào một biến (cấu trúcfetch được tự động sử dụng)Cú pháp: foreach ($KetQua as $Bien)

{//Lấy dữ liệu từ biến mảng $Bien

}

Lấy dữ liệu từ tập kết quả

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 23

Page 24: Web201   slide 2

Trong phần này có các nội dung:3.1. Giới thiệu về mô hình MVC3.2. Hướng dẫn viết hàm3.3. Hướng dẫn chuyển hướng yêu cầu

3. Hướng dẫn sử dụng mô hình MVC

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 24

Page 25: Web201   slide 2

Mô hình MVC (Model-View-Controller) gồm ba tầng:Tầng Model: chứa các file PHP biểu thị dữ liệu của ứng dụngTầng View: chứa các file HTML và PHP biểu thị giao diện người dùngcủa ứng dụngTầng Controller: chứa các file PHP nhận yêu cầu từ người dùng, lấy dữliệu thích hợp từ tầng Model và trả về tầng View tương ứng cho ngườidùng

Mô hình MVC giúp chúng ta dễ dàng viết mã và bảo trì ứng dụng

3.1. Giới thiệu về mô hình MVC

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 25

Page 26: Web201   slide 2

Minh họa mô hình MVC:

Giới thiệu về mô hình MVC

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 26

Page 27: Web201   slide 2

Trước khi viết mã sử dụng mô hình MVC cần học cách viết hàm tùychỉnhCú pháp viết hàm:function <tên hàm> (<danh sách tham số>)

{//các câu lệnh được thực thi trong thân hàmreturn <giá trị trả về>

}

Để trả về dữ liệu, bạn sử dụng câu lệnh return ở cuối thân hàmCú pháp gọi hàm:

$Bien = <tên hàm>(<danh sách tham số>);

3.2. Hướng dẫn viết hàm

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 27

Page 28: Web201   slide 2

Để chuyển tiếp yêu cầu:Từ một trang PHP này sang một trang PHP khác: sử dụng hàm includeSang một URL khác: sử dụng hàm header

Cú pháp hàm header:header('Location:<URL cần chuyển tới>')

Ví dụ:header('Location:.'); //thư mục hiện tạiheader('Location:..'); //lên thư mục chaheader('Location:./admin'); //xuống thư mục con có tên adminheader('Location:error.php'); //tới trang error.phpheader('Location:http://www.murach.com'); //tới địa chỉ

http://www.murach.com

3.3. Hướng dẫnchuyển hướng yêu cầu

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 28

Page 29: Web201   slide 2

Cơ sở dữ liệu quan hệ gồm các bảng chứa dữ liệu liên kết với nhaubằng khóa ngoại, mỗi bảng có các dòng và cộtKhóa chính dùng để phân biệt các dòng trong bảng với nhauĐể làm việc với dữ liệu trong cơ sở dữ liệu, bạn có thể sử dụng SQL(Ngôn ngữ truy vấn có cấu trúc)Sử dụng phần mềm phpMyAdmin để quản trị cơ sở dữ liệu MySQL.Phần mềm này sẵn có trong gói XAMPP

Tổng kết bài học

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 29

Page 30: Web201   slide 2

Để thực thi lệnh SELECT: sử dụng phương thức queryĐể thực thi lệnh INSERT, UPDATE, DELETE: sử dụng phương thứcexecĐể xử lý ngoại lệ: sử dụng câu lệnh try/catchĐể lấy dữ liệu từ mảng kết quả: gọi phương thức fetch rồi truy cậptới phần tử của mảng bằng chỉ mục kiểu số hoặc chuỗiĐể lấy dữ liệu cho mỗi bản ghi trong tập kết quả: sử dụng câu lệnhforeach duyệt từng dòng, lệnh fetch sẽ tự động được gọi để lấy radữ liệu cho mỗi hàng

Tổng kết bài học

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 30

Page 31: Web201   slide 2

Mô hình MVC (Model-View-Controller) được ứng dụng nhiều trongthực tế để cấu trúc các ứng dụng web cần những xử lý phức tạp

Tầng model trong mô hình MVC chứa các file PHP biểu thị cho dữ liệucủa ứng dụng.Tầng view chứa các file HTML và PHP biểu thị giao diện người dùngTầng controller trong mô hình MVC chứa các file PHP xử lý yêu cầu từngười dùng, lấy các dữ liệu thích hợp từ tầng model và trả về tầng viewthích hợp

Để chuyển tiếp yêu cầu:Từ một trang PHP này sang một trang PHP khác: sử dụng hàm includeSang một URL khác: sử dụng hàm header

Tổng kết bài học

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 31

Page 32: Web201   slide 2

XIN CẢM ƠN!

Bài 2: LÀM QUEN VỚI MÔI TRƯỜNG PHP VÀ MYSQL (PHẦN 2) 32