THAO TÁC CƠ SỞ DỮ LIỆU

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 62 - 63)

7.1. TỔNG QUAN

C{c ứng dụng web ng|y nay thƣờng phải thao t{c với cơ sở dữ liệu. Cơ sở dữ liệu có chức năng lƣu trữ bền vững dữ liệu ngƣời dùng v| kết quả xử lý của ứng dụng. Nội dung web đƣợc ứng dụng tạo ra sẽ căn cứ v|o dữ liệu. Dữ liệu kh{c nhau dẫn đến nội dung web đƣợc tạo ra kh{c nhau. Nói c{ch kh{c, dữ liệu đóng

vai trị nhƣ ngun liệu để tạo ra nội dung ‚động‛ cho trang web.

PHP hỗ trợ nhiều thƣ viện khác nhau cho thao t{c với cơ sở dữ liệu. Thƣ viện

thứ nhất, mysql_, ra đời từ những phiên bản đầu tiên của PHP, cho phép thao tác

với cơ sở dữ liệu MySQL theo phƣơng pháp lập trình thủ tục. Từ PHP 5.5 trở đi,

mysql_ chính thức bị loại bỏ. Thƣ viện thứ hai, mysqli, ra đời từ phiên bản PHP 5.0,

cho phép thao tác với cơ sở dữ liệu MySQL theo cả phƣơng pháp lập trình thủ tục và lập trình hƣớng đối tƣợng. Thƣ viện thứ ba, PDO (PHP Data Objects), ra đời từ

phiên bản PHP 5.0, cho phép thao tác với nhiều hệ cơ sở dữ liệu khác nhau, ngồi

MySQL cịn nhiều hệ quản trị cơ sở dữ liệu khác, theo phƣơng ph{p lập trình hƣớng đối tƣợng.

MySQL l| hệ quản trị cơ sở dữ liệu đƣợc dùng phổ biến, đặc biệt với lập trình

viên PHP. Tổ hợp đƣợc ƣa thích l| LAMP (Linux, Apache, MySQL, PHP) hoặc

XAMP (X, Apache, MySQL, PHP), trong đó X (cross) {m chỉ hệ điều h|nh bất kỳ.

Điều đó có nghĩa, Apache, MySQL, PHP cũng có thể đƣợc dùng trên Windows hay MAC OS. Ngo|i MySQL, nhiều hệ quản trị cơ sở dữ liệu kh{c nhƣ PostgreSQL, Oracle, MongoDB, MS SQL, < cũng có thể đƣợc dùng với PHP.

Bất luận thƣ viện và hệ quản trị cơ sở dữ liệu nào đƣợc sử dụng, về cơ bản, thao t{c cơ sở dữ liệu gồm c{c bƣớc chính sau:

1. Tạo kết nối đến m{y chủ cơ sở dữ liệu

2. Lựa chọn cơ sở dữ liệu để làm việc

3. X}y dựng c{c truy vấn, cập nhật v| thực hiện truy vấn, cập nhật

4. Xử lý dữ liệu kết quả trả về khi thực hiện c{c truy vấn, cập nhật

5. Đóng kết nối đến m{y chủ cơ sở dữ liệu

Ngoài năm thao t{c chính nhƣ liệt kê ở trên, thay đổi cấu trúc bảng, thực thi giao tác, mã hóa dữ liệu, < l| một v|i thao t{c kh{c cũng có thể đƣợc yêu cầu. Thao tác

cơ sở dữ liệu sử dụng mysqli và PDO của PHP sẽ đƣợc trình b|y trong c{c mục tiếp theo.

WebAppDevLê Đình Thanh, Nguyễn Việt Anh

147

7.2. MYSQLi

7.2.1. Cài đặt và cấu hình

Từ phiên bản PHP 5.3, thƣ viện mysqli đƣợc c|i đặt v| bật theo mặc định. Điều đó có nghĩa chỉ cần c|i đặt PHP 5.3 trở lên l| có thể thao tác với cơ sở dữ liệu

MySQL. Nếu sử dụng c{c phiên bản PHP 5.0, 5.1 hay 5.2, lập trình viên cần c|i đặt

gói php-mysql để có mysqli, đồng thời cần bật mysqli bằng c{ch đƣa v|o tệp cấu

hình php.ini dịng có nội dung extension=php_mysqli.dll. Nhắc lại rằng, thƣ viện

mysqli là một mở rộng của PHP để thao t{c với cơ sở dữ liệu MySQL chứ không

phải một hệ quản trị cơ sở dữ liệu n|o kh{c. Nếu hệ quản trị cơ sở dữ liệu l| MySQL v| lập trình viên PHP khơng có ý định chuyển sang một hệ quản trị cơ sở dữ liệu kh{c thì mysqli l| một lựa chọn tốt. Nó hỗ trợ tất cả những đặc trƣng của

MySQL và cho phép thao t{c với MySQL ở một tốc độ cao.

7.2.2. Mở và đóng kết nối cơ sở dữ liệu

Thƣ viện mysqli cho phép thao t{c với MySQL theo cả lập trình thủ tục v| lập trình hƣớng đối tƣợng. Gi{o trình chỉ trình b|y sử dụng mysqli theo phƣơng ph{p lập trình hƣớng đối tƣợng vì đ}y l| phƣơng ph{p lập trình chính đƣợc sử dụng ngày nay. Để kết nối đến m{y chủ MySQL v| lựa chọn cơ sở dữ liệu l|m việc, ứng

dụng cần tạo một đối tƣợng mysqli theo cú pháp

$db = new mysqli($host, $username, $passwd, $dbname, $port)

trong đó, $host là địa chỉ IP hoặc tên miền của m{y chủ MySQL, $username và

$passwd l| tên sử dụng v| mật khẩu ngƣời dùng cơ sở dữ liệu, $dbname l| tên cơ sở

dữ liệu, và $port l| cổng đƣợc MySQL lắng nghe. Cổng mặc định cho MySQL l| 3306. Nếu sử dụng cổng mặc định thì tham số $port không cần đƣợc chỉ định trong h|m tạo đối tƣợng mysqli. Kết quả của h|m tạo mysqli, nếu th|nh công, là một đối tƣợng kết nối đến cơ sở dữ liệu đƣợc chỉ định. Ngƣợc lại, nếu có lỗi khơng kết nối đƣợc, số lỗi v| mã lỗi sẽ đƣợc trả về trong các thuộc tính

connect_errno, connect_error, tƣơng ứng.

Để đóng kết nối cơ sở dữ liệu, sử dụng phƣơng thức close(), khơng có tham số, của mysqli. Thao t{c n|y tuy đơn giản nhƣng rất quan trọng vì nó có t{c dụng giải phóng c{c t|i nguyên đã cấp cho kết nối. Nếu ứng dụng khơng đóng kết nối, sau nhiều lần thao t{c cơ sở dữ liệu, nhiều kết nối đƣợc mở ra nhƣng khơng đƣợc đóng lại dẫn đến t|i ngun bị chiếm dụng lãng phí v| hiệu năng của ứng dụng bị ảnh hƣởng.

Mã nguồn thao t{c cơ sở dữ liệu sử dụng mysqli tổng qu{t có dạng nhƣ ví dụ

sau đ}y. 1. <?php

Một phần của tài liệu Giáo trình Phát triển ứng dụng web: Phần 2 - Lê Đình Thanh, Nguyễn Việt Anh (Trang 62 - 63)

Tải bản đầy đủ (PDF)

(126 trang)