-----
Phần 105. Kết
hợp PHP – mySQL – thư viện PDO
Tới đây đã biết một chút về PHP, mySQL, phần này sẽ kết hợp
PHP và mySQL để làm một số chức năng đơn giản.
Lưu ý phần này đang thực hiện lập trình ở phía server-side,
nghĩa là các xử lý sẽ được biên dịch và thực thi tại web server. Khi dùng trình
duyệt để xem kết quả nghĩa là đoạn mã đã được biên dịch và thực thi hai lần,
lần một tại web server và lần hai tại trình duyệt của người dùng. Phía
server-side xử lý mã của PHP, phía client-side xử lý mã HTML và CSS.
PDO viết tắt của PHP Data Objects, hiểu nôm na là các đối
tượng dữ liệu, hay lớp truy cập cơ sở dữ liệu trong PHP. PDO là một thư viện
được sử dụng để thao tác với cơ sở dữ liệu. Khi lập trình với PHP, ngoài PDO
còn có hai thư viện khác có thể thao tác với cơ sở dữ liệu là MySQL (đã ngừng
phát triển) và MySQLi.
Xem và làm theo clip số 11 của thầy Nguyễn Anh Tuấn:
Trong clip tác giả dùng Dreamweaver để lập trình, tuy nhiên
có thể dùng editor bất kì, ví dụ Sublime text.
Các bước xử lý gồm:
- Kết nối cơ sở dữ liệu bằng PDO
- Đọc dữ liệu từ một bảng
- Duyệt qua từng dòng
- Đọc các trường (của mỗi dòng) để xuất ra giao diện
Kết nối tới cơ sở dữ
liệu bằng PDO
Cú pháp:
$conn
= new PDO("mysql:host=servername;dbname=myDB", username,
password);
Trong đó,
- servername: tên của máy server chứa cơ sở dữ liệu.
- myDB: tên của cơ sở dữ liệu.
- username, password: tên và mật khẩu của tài khoản truy cập
vào hệ quản trị cơ sở dữ liệu.
Ví dụ,
$pdo = new
PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
Tạo câu truy vấn
$sql = "SELECT ma_loai,ten_loai,mo_ta FROM
loai_mon_an";
Thực thi câu truy
vấn, các mẩu tin kết quả chứa trong biến $loai_mon
$loai_mon = $pdo->query($sql);
Xuất số lượng mẩu tin
kết quả để kiểm tra
echo $loai_mon->rowcount();
Ngắt kết nối tới cơ
sở dữ liệu (giải phóng đối tượng PDO)
$pdo->NULL;
Đoạn mã để chạy kiểm tra,
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Danh
sách loại món ăn</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new
PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Tạo câu truy vấn
$sql = "SELECT ma_loai,ten_loai,mo_ta FROM loai_mon_an";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến
$loai_mon
$loai_mon = $pdo->query($sql);
//Xuất số lượng mẩu tin kết quả để kiểm tra
echo $loai_mon->rowcount();
?>
<body>
</body>
</html>
Đoạn mã xuất các loại món ăn:
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Danh
sách loại món ăn</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new
PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Xuất tiếng Việt
$pdo->query("SET NAMES UTF8");
//Tạo câu truy vấn
$sql = "SELECT ma_loai,ten_loai,mo_ta FROM
loai_mon_an";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến
$loai_mon
$loai_mon = $pdo->query($sql);
?>
<body>
<?php
if($loai_mon->rowcount()
> 0 ){
?>
<table width="500" border="0"
cellspacing="5" cellpadding="5"
align="center">
<caption>
<h2>THÔNG
TIN LOẠI MÓN ĂN</h2>
</caption>
<tr>
<td>Mã
loại</td>
<td>Tên
loại</td>
<td>Diễn
giải</td>
</tr>
<?php
foreach
($loai_mon as $loai) {
?>
<tr>
<td><?php
echo $loai[0] ?></td>
<td><?php
echo $loai[1] ?></td>
<td><?php
echo $loai[2] ?></td>
</tr>
<?php } ?>
</table>
<?php } ?>
</body>
</html>
Xem và làm theo clip số 12 của thầy Nguyễn Anh Tuấn:
Đoạn mã hiển thị danh sách khách hàng, và ngắt kết nối tới
cơ sở dữ liệu.
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Danh
sách khách hàng</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new
PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Xuất tiếng Việt
$pdo->query("SET NAMES UTF8");
//Tạo câu truy vấn
$sql = "SELECT * FROM khach_hang";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến
$khach_hang
$khach_hang = $pdo->query($sql);
?>
<body>
<?php
if($khach_hang->rowcount()
> 0 ){
?>
<table width="800" border="0"
cellspacing="5" cellpadding="5"
align="center">
<caption>
<h2>THÔNG
TIN KHÁCH HÀNG</h2>
</caption>
<tr>
<td>Mã
KH</td>
<td>Họ
tên</td>
<td>Địa
chỉ</td>
<td>Điện
thoại</td>
<td>Email</td>
</tr>
<?php
foreach
($khach_hang as $khach) {
?>
<tr>
<td><?php
echo $khach[ma_khach_hang] ?></td>
<td><?php
echo $khach[ten_khach_hang] ?></td>
<td><?php
echo $khach[dia_chi] ?></td>
<td><?php
echo $khach[dien_thoai] ?></td>
<td><?php
echo $khach[email] ?></td>
</tr>
<?php } ?>
</table>
<?php }
//Ngắt kết nối tới cơ sở dữ liệu (giải phóng đối tượng PDO)
$pdo->NULL;
?>
</body>
</html>
-----------
Cập nhật 14/2/2017
-----------