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

Để truy cập và thêm nội dung vào cơ sở dữ liệu MySQL, trước tiên bạn phải kết nối MySQL với PHP. Trong hướng dẫn này, hãy tìm hiểu cách sử dụng MySQLi ExtensionPHP Data Objects để kết nối với MySQL. Các hàm mysql_ truyền thống không dùng được nữa và chúng tôi sẽ không đề cập đến chúng trong hướng dẫn này.

Hướng dẫn dùng mysql trong PHP
Hướng dẫn kết nối MySQL với PHP với 2 cách

Điều kiện cần có:

  • CREATE đặc quyền.
  • Cơ sở dữ liệu MySQL.
  • Extension MySQLi hoặc PDO.

2 cách kết nối MySQL với PHP

Có hai cách phổ biến để kết nối MySQL với PHP:

  1. Với phần mở rộng  MySQLi Extension của PHP.
  2. Với PHP Data Objects (PDO)

Hướng dẫn này cũng bao gồm các giải thích về thông tin xác thực được sử dụng trong PHP script và các lỗi tiềm ẩn mà bạn có thể gặp khi sử dụng MySQLi và PDO.

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

MySQLi là một extension chỉ hỗ trợ cơ sở dữ liệu MySQL. Nó cho phép truy cập vào các chức năng có trong hệ thống MySQL (phiên bản 4.1 trở lên), cung cấp cả giao diện thủ tục và hướng đối tượng. Nó hỗ trợ các câu lệnh phía server, nhưng không hỗ trợ từ phía máy client.

MySQLi extension được bao gồm cả phiên bản PHP 5 và các phiên bản mới hơn.

PHP script để kết nối với cơ sở dữ liệu MySQL bằng cách tiếp cận MySQLi như sau:

connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo “Connected successfully”;
mysqli_close($conn);
?>

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.

Hướng dẫn dùng mysql trong PHP
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ướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
Lệnh if và lệnh die

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

Hướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
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:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  echo “Connection Okay”;
  return $pdo
}
catch (PDOException $e) {
  echo “Connection failed: ”. $e->getMessage();
}
?>

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.

Hướng dẫn dùng mysql trong PHP
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ế.

Hướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
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.
Hướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
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.

Hướng dẫn dùng mysql trong PHP
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 dẫn dùng mysql trong PHP
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.