Ngu ngơ học làm web (105) - Kết hợp PHP – mySQL – thư viện PDO

Tiếp theo của: Ngu ngơ học làm web (104) - mySQL – cập nhật dữ liệu
-----

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
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web