Hướng dẫn dùng is mysql trong PHP

Bài này sẽ hướng dẫn bạn select dữ liệu từ MySQL trong PHP bằng cách sử dụng MySQLi PDO.

Câu lệnh SELECT được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng:

Cú pháp câu lệnh SELECT trong MySQL:

SELECT column_name[s] FROM table_name

hoặc chúng ta có thể sử dụng ký tự * để chọn TẤT CẢ các cột từ một bảng:

Select dữ liệu với MySQLi

Ví dụ sau chọn cột id, firstname và lastname từ bảng MyGuests và hiển thị các thông tin này trên trang:

Ví dụ [MySQLi hướng đối tượng]

Kết quả:

id: 1 - Name: David Vinh
id: 2 - Name: Tran Tan

Đoạn code trên có thể được giải thích như sau:

Đầu tiên, chúng ta thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng code tiếp theo thực thi truy vấn và đưa kết quả vào một biến gọi là $result.

Sau đó, các function num_rows[]kiểm tra nếu có nhiều hơn 0 bản ghi trả về.

Nếu có nhiều bản ghi được trả về, hàm fetch_assoc[] sẽ đặt tất cả các kết quả vào một mảng kết hợp mà chúng ta có thể lặp lại. Vòng lặp while[] lặp tập kết quả và kết quả và cột id, firstname và lastname được hiển thị trên trang.

Ví dụ [MySQLi hướng thủ tục]

Kết quả:

id: 1 - Name: David Vinh
id: 2 - Name: Tran Tan


Select dữ liệu với PDO

Chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trong một bảng HTML:

Giải thích về thông tin xác thực

Phần đầu tiên của script là bốn biến [server name, database, username và password] và các giá trị tương ứng của chúng. Các giá trị này phải tương ứng với chi tiết kết nối của bạn.

4 biến của script

Tiếp theo là hàm chính của PHP mysqli_connect []. Nó thiết lập một kết nối với database được chỉ định.

Hàm mysql_connect

Sau đây là câu lệnh “if”. Đây là một phần của code cho biết liệu kết nối đã được thiết lập hay chưa. Khi kết nối không thành công, nó sẽ đưa ra thông báo Connection failed.. Hàm die sẽ in thông báo và sau đó thoát ra khỏi script.

Lệnh if và lệnh die

Nếu kết nối thành công, nó sẽ hiển thị “Connected successfully.”.

Thông báo kết nối thành công

Khi script kết thúc, kết nối với database cũng đóng. Nếu bạn muốn kết thúc code theo cách thủ công, hãy sử dụng hàm mysqli_close.

Sử dụng mysqli_close để kết thúc kết nối

Kết nối MySQL với PHP bằng PDO

PHP Data Objects [PDO] là một extension như một interface để kết nối với database. Không giống như MySQLi, nó có thể thực hiện bất kỳ chức năng database nào và không giới hạn ở MySQL. Nó cho phép sự linh hoạt giữa các database và tổng quát hơn MySQL. PDO hỗ trợ các câu lệnh từ phía server và cả client.

Lưu ý: Kết nối MySQL với PHP bằng PDO sẽ không thành công nếu phiên bản PHP cũ hơn 5.0 [bao gồm cả PHP 5.1].

Kết nối MySQL với PHP thông qua PDO như sau:

Cú pháp thông tin xác thực

Đầu tiên, chúng ta có năm biến [server name, database, username, password, và charset] và các giá trị của chúng. Các giá trị này phải tương ứng với chi tiết kết nối của bạn.

Server name sẽ là localhost. Nếu được kết nối với một server online, hãy nhập tên server đó vào server name.

Biến “charset” cho database biết mã hóa mà nó sẽ nhận và gửi dữ liệu. Tiêu chuẩn được đề xuất là utf8mb4.

Thêm biến charset

Try và Catch

Tài sản lớn của PDO là có một lớp ngoại lệ để xử lý mọi vấn đề tiểm ẩn trong các truy vấn database. Nó giải quyết những vấn đề này bằng trycatch.

Nếu sự cố phát sinh trong khi cố gắng kết nối, nó sẽ ngừng chạy và cố gắng bắt và giải quyết sự cố. Các block try có thể được đặt để hiển thị thông báo lỗi hoặc chạy mã thay thế.

Giải quyết vấn đề tìm ẩn bằng try và catch

Tham số đầu tiên trong block try và catch là DSN, viết tắt của Data[base] Source Name. Nó rất quan trọng vì nó xác định loại và tên của database, cùng với bất kỳ thông tin bổ sung nào khác.

Trong ví dụ này, chúng tôi đang sử dụng MySQL database. Tuy nhiên, PDO hỗ trợ nhiều loại database khác nhau. Nếu bạn có một database khác, hãy thay thế phần cú pháp đó [mysql] bằng database bạn đang sử dụng.

Thay thế mysql bằng database bạn đang sử dụng

Tiếp theo là biến PDO. Biến này sẽ thiết lập kết nối với database. Nó có ba tham số:

  1. Data Source Name [DSN].
  2. Username cho database của bạn.
  3. Password cho database của bạn.
PDO gồm 3 tham số username, password và DSN

Sau đây là phương thức setAttribute thêm hai tham số vào PDO:

  1. PDO::ATTR_ERRMODE
  2. PDO::MODERATOR_EXCEPTION

Phương pháp này hướng dẫn PDO chạy trong trường hợp truy vấn không thành công.

setAttribute chạy trong truy vấn không thành công

Thêm echo “Connection Okay.” để xác nhận kết nối đã được thiết lập.

Xác định kết nối được thiết lập

Trả về biến PDO để được kết nối với database.

Trả về biến PDO

Sau khi trả về biến PDO, hãy xác định PDOException trong block catch bằng cách hướng nó hiển thị thông báo kết nối không thành công.

Hướng đó hiển thị thông báo “Connection failed”

Các lỗi tiềm ẩn khi kết nối MySQL với PHP bằng MySQLi và PDO

Password không đúng

Password trong PHP code cần phải tương ứng với password trong database. Nếu cả hai không khớp, kết nối với database không thể được thiếp lập. Bạn sẽ nhận được thông báo lỗi cho biết kết nối không thành công.

Phương pháp khả thi:

  1. Kiểm tra chi tiết database để đảm bảo password chính xác.
  2. Đảm bảo người dùng được chỉ định cho database.

Không thể kết nối MySQL Server

PHP có thể không kết nối được với MySQL server nếu tên server không được nhận dạng. Đảm bảo rằng tên server được đặt thành localhost.

Trong trường hợp xảy ra lỗi khác, hãy nhớ thêm file “error_log” để trợ giúp khi cố gắng giải quyết bất kỳ vấn đề nào. File nằm trong cùng một folder nơi script đang chạy.

Tổng kết

Hướng dẫn này trình bày chi tiết cách kết nối MySQL với PHP bằng hai công cụ đó là MySQLiPDO để giúp bạn có thể hiểu rõ hơn về chúng.

Cả MySQLi và PDO đều có điểm mạnh của chúng. Tuy nhiên, hãy nhớ rằng MySQLi chỉ sử dụng cho database MySQL. Do đó, nếu bạn muốn thay đổi sang database khác, bạn sẽ phải viết lại toàn bộ code. Mặt khác, PDO hoạt động với 12 database khác nhau, giúp việc di chuyển dễ dàng hơn nhiều.

Hy vọng bài viết này sẽ giúp ích cho bạn. Chúc bạn may mắn! Đừng quên theo dõi Vietnix để cập nhật kiến thức và tài liệu bổ ích khác.

Bài Viết Liên Quan

Toplist mới

Bài mới nhất

Chủ Đề