Bài 3. Kết nối cơ sở dữ liệu với PHP bằng mysqli

1. Tạo Cơ sở dữ liệu

Sau khi đã cài MySql, dùng phần mềm SQLyog để truy cập tới CSDL. Nhập tài khoản CSDL cần thao tác để chương trình tạo kết nối.

1

Tới đây, bạn tạo 1 Database mới với tên “db_test” bằng trên giao diện hoặc có thể viết đoạn scripts để khởi tạo CSDL mới. Ví dụ của 1 đoạn mã tạo CSDL mới như sau:

2

Sau đó tạo 1 bảng mới để lưu dữ liệu, trong ví dụ này, mình sẽ tạo 1 bảng với tên “tab_student” để lưu trữ thông tin về các học sinh, mã script khởi tạo và thêm một vài dòng dữ liệu như sau:

2

42. Kết nối Php với CSDL thông qua thư viện mysqli

Để lấy được dữ liệu từ Database, ta thực hiện mở 1 kết nối tới Database server, chỉ định Database mà ta muốn sử dụng. Từ Php 5.3 trở đi thì mysqli là thư viện được hỗ trợ mặc định bởi PHP để kết nối tới Database. Cú pháp sử dụng như sau:

4

Ví dụ: Để thực hiện kết nối tới local database server và sử dụng database vừa tạo ở trên, ta cấu hình kết nối như sau:

4

3. Truy vấn dữ liệu sau khi đã mở kết nối

a. Truy vấn lấy dữ liệu records (truy vấn select)

Để thực hiện truy vấn select, ta cần chuẩn bị câu truy vấn sql, sau đó dùng mysqli để thực hiện truy vấn, kết quả của câu lệnh trả về là các dòng dữ liệu tìm thấy được. Giả sử ta truy vấn danh sách các học sinh có trong bảng “tab_student” đã tạo ở trên, mã thực hiện như sau:

4

Để lấy dữ liệu trả về, ta sẽ thực hiện đọc từng dòng record, mỗi dòng dữ liệu được xem như một mảng dữ liệu. Thực hiện như sau: 4

b. Truy vấn add / update / delete

Khác với câu truy vấn select, các câu truy vấn kiểu add / update / delete không trả về dữ liệu lấy được, mà sẽ trả về dữ liệu để xác nhận câu truy vấn đã được thực hiện thành công hay chưa. Để thực hiện truy vấn, tương tự như trên, ta chuẩn bị câu truy vấn Sql và thực hiện gọi truy vấn thông qua mysqli. Cú pháp như sau:

4

4. Xây dựng lớp quản lí truy vấn dữ liệu trong PHP

Với các ứng dụng đơn giản, khi truy vấn tới CSDL, ta thực hiện mở kết nối và thực hiện truy vấn như đã giới thiệu ở phần trên. Tuy nhiên, nhược điểm của việc này là ta phải thường xuyên thực hiện “mở” và “đóng” kết nối, việc này có thể ảnh hưởng đến hiệu suất thực thi của ứng dụng. Hơn nữa, việc viết mã lệnh như trên không tốt cho việc cải tiến và phát triển ứng dụng sau này. Do đó, ta sẽ thực hiện xây dựng 1 lớp để quản lí kết nối tới CSDL, giúp ứng dụng quản lí việc đóng mở kết nối cũng như việc thống nhất cách thức thực hiện truy vấn. Cấu hình để truy cập tới Database server cũng chỉ cần thực hiện 1 lần ở lớp này.

Đầu tiên, ta xây dựng lớp quản lí kết nối từ ứng dụng tới Database server, lớp này cũng cung cấp một cách sử dụng thống nhất các lệnh truy vấn. Lớp này được viết theo mẫu Singleton, để đảm bảo việc ứng dụng người dùng chỉ có duy nhất 1 kết nối được mở tới Database server tại 1 thời điểm duy nhất. Mã lệnh như sau:

4

Để ví dụ về cách sử dụng lớp này, ta sẽ hiệu chỉnh lại ứng dụng quản lí học sinh đã trình bày ở bài MVC cơ bản. Ta thực hiện chỉnh sửa source code của lớp Model_Student để lớp Model này có thể sử dụng lớp DB nhằm thực hiện truy vấn CSDL:

4

Do dữ liệu trả về từ Database là dạng bảng, nên để sử dụng ở Controller, ta thực hiện chuyển đổi từng dòng dữ liệu sang dạng mảng. Do đó, ta hiệu chỉnh lại lớp Ctrl_Student cho phù hợp: 4

Tới đây ta đã thực hiện lấy dữ liệu từ Database server lên ứng dụng thành công, việc hiển thị các dữ liệu này lên View được thực hiện tương tự như với dữ liệu bình thường.

Link code tham khảo: https://drive.google.com/open?id=0B-5fkWexH-GOZEZOYTV5X1FDNDQ

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s