Bài giảng Lập trình viên mã nguồn mở (Module 3) - Bài 4: Kết hợp PHP và MySQL - thư viện PDO 1 trình bày các nội dung chính sau: Khái niệm PDO, tạo kết nối - hủy kết nối, thực thi lệnh SQL. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.
Trang 1Go Screen Capture
Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh
TRUNG TÂM TIN HỌC
LTV MA NGUON MO’ PHP
Module 3 — Bai 4: Két hop PHP & MySQL — Thu
vié
Nganh LT & CSDL
www.t3h.vn
Cong GUC
MediaFire
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 57
Trang 2Lập trình viên mã nguồn mở PHP — Module 3
LTV Mã nguồn mở PHP - Module 3 2
¬ ”PDO - PHP Data Objects — là một lớp truy
cập dữ liệu (database access layer) cung
câp phương thức chuân đề truy cập vào
nhiều loại CSDL khác nhau.”
©®
GO ——
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 58
Cong GUC
MediaFire
Trang 3Giới thiệu
1 PDO cung cấp một lớp truy cập dữ liệu trừu tượng
(data-access abstraction layer), nghia la, du chung
ta đang sử dụng CSDL nào, chúng ta đều có thể
sử dụng các phương thức như nhau đề truy vấn
và lấy dữ liệu
QO PDO không cung cấp một CSDL trừu tượng, vì
vậy chúng ta cần phải sử dụng một lớp trừu
tượng nếu chúng ta cần CSDL đó
LTV Mã nguồn mở PHP - Module 3 4
eee eeoeo
eoeee
eeee eecece
eee
ee
A ề 5
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 59
Cong GUC
MediaFire
Trang 4Lập trình viên mã nguồn mở PHP — Module 3
Lý do chọn PDO
¬ Hướng đối tượng: rất phù hợp đề chúng ta
tích hợp vào mô hình MVC (Rất nhiều
framework lớn hiện nay điều sử dụng PDO)
Mô hình làm việc giữa PDO và các loại CSDL
LTV Mã nguồn mở PHP - Module 3 6
ĐỂ
O Nhanh & đơn giản: việc thao tác với từng
loại csdl sẽ do từng driver tương ứng đảm
nhiệm
Mô hình làm việc giữa PDO và các loại CSDL
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 60
Cong GIIC
MediaFire
Trang 5
sis,
O Linh déng: dé chuyén déi sang CSDL khac
ta chỉ việc thay đồi tên driver tương ứng
Mô hình làm việc giữa PDO và các loại CSDL
iff,
¬ An toàn: với giải pháp PDOStatement
chúng ta không còn lo so SQL injection
nữa
PDOStateme
nt
Mô hình làm việc giữa PDO và các loại CSDL
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 61
Cong GIIC
MediaFire
Trang 6Lập trình viên mã nguồn mở PHP — Module 3
LTV Mã nguồn mở PHP - Module 3 10
Tạo kết nối - hủy kết nói
n Tạo kết nói
e Cú pháp:
$dbh = new PDO(<driver>, <username>,
<password>, <driver_options>);
e Tham số:
“ <driver>: tên driver dùng để làm việc CSDL
“ <username>: tên đăng nhập vào CSDL
= <password>: mat khẩu dùng để truy cập vào CSDL
= <driver_options>: tham số tùy chọn, dùng để bổ sung thêm các trạng thái kết nối của PDO
PDO a DATA
at DRIVER TC:
LTV Mã nguồn mở PHP - Module 3
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 62
Cong GUC
MediaFire
Trang 7Tạo kết nối - hủy kết nói
O Tao két noi
e Server hé tro’ kha nhiéu driver:
“-PDO_ DBLIB (Microsoft SQL Server)
= PDO_IBM (IBM DB2)
= PDO MYSQL (MySQL 3.x/4.x/5.x)
=PDO OCI (Oracle Call Interface)
=PDO_ PGSQL ( PostgreSQL )
e Đề xem server hỗ trợ những loại driver nào:
<?php print_ r(PDO::getAvailableDrivers());
2>
| |
Tạo kết nối - hủy kết nói
T1Tạo kết nồi
eVí dụ: Kết nối đến MySQL
$dbh = new PDO(‘mysqI:host=localhost;dbname=test’,
‘root’, ‘’);
eVí dụ: Kết nối đến MSSQL
$dbh = new PDO(‘dblib:host=localhost;dbname=test’, ‘root’,
°);
| |
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 63
Cong GIIC
MediaFire
Trang 8Lập trình viên mã nguồn mở PHP — Module 3
Tạo kết nối - hủy kết nói HH
T1Tạo kết nồi
eVí dụ: Kết nối đến Oracle
$tns = "(DESCRIPTION =
(ADDRESS LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
yourip)(PORT = 1521))
{CONNECT _DATA = (SERVICE_NAME = orcl) )
"5
$dbh= new PDO("oci:dbname=".$tns, ‘root’, ‘’);
Tạo kết nối - hủy kết nói 333°
OHuy két noi
eCu phap
$dbh = NULL;
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 64
Trang 9
Tạo kết nối - hủy kết nói oss:
Xử lý lỗi kết nói
try {
$dbh = new PDO('mysal:host=localhost;dbname=
test’, ‘root’, °);
$dbh = null;
} catch (PDOException $e) {
print "Error!:" $e->getMessage() "<br/>";
die();
}
LTV Mã nguồn mở PHP - Module 3 16
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 65
Cong GIIC
MediaFire
Trang 10Lập trình viên mã nguồn mở PHP — Module 3
sis,
Thực thi lệnh S@L seo
Câu lệnh Insert, update, delete
$dbh->exec(<query>);
e‹ Tham số
- query: tham số bắt buộc, là câu lệnh truy vấn được gửi
đi
- $Sdbh->exec(): Kết quả là tổng số dòng bị ảnh hưởng
Nếu không có dòng nào bị tác động thì kết quả là 0 Nếu
không thực thi được câu lệnh thì kết quả là False
a LTV Mã nguồn mở PHP - Module 3 18
sis
Thực thi lệnh S@L seo
e« Ví dụ: Thực hiện lệnh xóa tất cả các dòng
dữ liệu trong bảng hang_ sua
f LTV Mã nguồn mở PHP - Module 3 19
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 66
Cong GUC
MediaFire
Trang 11
TH
Thực thi lệnh SQL 33°
Câu lệnh Select
e Cu phap:
$dbh->query(<query>);
e Tham sé:
- query: tham số bắt buộc, là câu lệnh truy vấn được gửi
đi
a LTV Mã nguồn mở PHP - Module 3 20
iff,
Thực thi lệnh SQL 33°
« Ví dụ: Thực hiện lệnh lấy thông tin loại sữa
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 67
Cong GIIC
MediaFire
Trang 12Lập trình viên mã nguồn mở PHP — Module 3
ba LTV Mã nguồn mo PHP - Module 3 22
Cong GNC
Media mae
Bản quyền © Trung Tâm Tin Học - Đại Học Khoa Học Tự Nhiên | Xuất bản bởi ®Công GMC Trang 68