Trong bài này, chúng ta sẽ tìm hiểu về cách kết nối MySQL với PHP sử dụng PDO. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (open-source relational database management system). MySQL được phát triển bởi tập đoàn Oracle và được viết bằng ngôn ngữ C và C++. Chúng ta có thể download và sử dụng MySQL một cách miễn phí tại website https://www.mysql.com/.
Chúng ta có thể sử dụng MySQL được tích hợp trong XAMPP. Các bạn có thể đọc bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách cài đặt XAMPP và khởi chạy MySQL.
Có 3 cách để kết nối cơ sở dữ liệu MySQL với PHP:
– MySQLi (object-oriented)
– MySQLi (procedural)
– PDO (PHP Data Object)
Trong bài này, chúng ta sẽ sử dụng PDO (PHP Data Object) để tạo kết nối PHP với MySQL được tích hợp trong XAMPP.
2. PDO (PHP Data Object) là gì?
PDO (PHP Data Object) là một lớp trong PHP giúp kết nối nhiều hệ quản trị cơ sở dữ liệu (CSDL) khác nhau. Ngoài MySQL, chúng ta có thể kết nối PHP với Oracle, Microsoft SQL Server, PostgreSQL,… bằng cách sử dụng PDO.
Với mỗi CSDL khác nhau, PDO sẽ sử dụng các loại driver khác nhau. Các câu lệnh SQL được truyền vào PDO sẽ được xử lý phù hợp với từng CSDL. Do đó, chúng ta có thể dễ dàng chuyển sang một hệ quản trị CSDL khác khi sử dụng PDO. Việc đơn giản là chỉ cần thay đổi Connection String (chuỗi kết nối CSDL).
3. Kết nối cơ sở dữ liệu MySQL với PHP sử dụng PDO
Để kết nối với MySQL sử dụng PDO, chúng ta cần tạo một đối tượng PDO và truyền vào một chuỗi kết nối CDSL.
<?php
$servername = "localhost";
$username = "root";
$password = "";
try {
$conn = new PDO("mysql:host=$servername", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Chúng ta nên đóng kết nối với MySQL khi không sử dụng nữa. Nếu sử dụng PDO thì đóng kết nối như sau:
$conn = null;
Nếu không đóng kết nối với MySQL thì kết nối cũng sẽ tự đóng khi thực thi xong PHP script.