Khi phát triển ứng dụng web, việc kết nối PHP với cơ sở dữ liệu MySQL là một trong những bước quan trọng nhất. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng PDO (PHP Data Objects) để kết nối PHP với MySQL. PDO là một cách tiếp cận an toàn và linh hoạt hơn so với các phương pháp kết nối truyền thống.
PDO là gì?
PDO (PHP Data Objects) là một lớp trong PHP cung cấp một giao diện nhất quán để truy cập cơ sở dữ liệu. Nó hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, bao gồm MySQL, PostgreSQL, SQLite, và nhiều hơn nữa. Một trong những lợi ích lớn nhất của PDO là khả năng sử dụng các câu lệnh chuẩn bị (prepared statements), giúp bảo vệ ứng dụng khỏi các cuộc tấn công SQL Injection.
Tại sao nên sử dụng PDO?
Bảo mật
Sử dụng PDO giúp bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL Injection. Bằng cách sử dụng các câu lệnh chuẩn bị, bạn có thể tách biệt dữ liệu và mã SQL, làm cho việc tấn công trở nên khó khăn hơn.
Tính linh hoạt
PDO hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, cho phép bạn dễ dàng chuyển đổi giữa các hệ quản trị cơ sở dữ liệu mà không cần thay đổi mã nguồn.
Dễ dàng sử dụng
PDO cung cấp một API đơn giản và dễ sử dụng, giúp lập trình viên dễ dàng thực hiện các thao tác với cơ sở dữ liệu.
Cách Kết Nối PHP với MySQL Bằng PDO
Cài đặt môi trường
Trước tiên, bạn cần đảm bảo rằng máy chủ của bạn đã cài đặt PHP và MySQL. Bạn có thể sử dụng XAMPP, WAMP hoặc MAMP để thiết lập môi trường phát triển.
Kết nối đến cơ sở dữ liệu
Để kết nối đến cơ sở dữ liệu MySQL bằng PDO, bạn có thể sử dụng đoạn mã sau:
<?php
$host = 'localhost';
$db = 'tên_cơ_sở_dữ_liệu';
$user = 'tên_người_dùng';
$pass = 'mật_khẩu';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
echo "Kết nối thành công!";
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>
Giải thích mã
- $host: Địa chỉ máy chủ MySQL (thường là
localhost). - $db: Tên cơ sở dữ liệu mà bạn muốn kết nối.
- $user: Tên người dùng MySQL.
- $pass: Mật khẩu của người dùng MySQL.
- $charset: Bộ ký tự sử dụng (thường là
utf8mb4).
Mã trên sẽ tạo một kết nối đến cơ sở dữ liệu MySQL và thông báo nếu kết nối thành công hoặc thất bại.
Thực hiện các truy vấn với PDO
Truy vấn dữ liệu
Để thực hiện truy vấn dữ liệu, bạn có thể sử dụng câu lệnh chuẩn bị như sau:
$stmt = $pdo->query("SELECT * FROM ten_bang");
while ($row = $stmt->fetch()) {
echo $row['cot1'] . " - " . $row['cot2'] . "<br>";
}
Thêm dữ liệu
Để thêm dữ liệu vào cơ sở dữ liệu, bạn có thể sử dụng câu lệnh chuẩn bị như sau:
$stmt = $pdo->prepare("INSERT INTO ten_bang (cot1, cot2) VALUES (:cot1, :cot2)");
$stmt->execute(['cot1' => $giatri1, 'cot2' => $giatri2]);
Kết luận
Việc kết nối PHP với MySQL bằng PDO không chỉ giúp bảo mật ứng dụng mà còn mang lại tính linh hoạt và dễ dàng trong việc quản lý cơ sở dữ liệu. Hy vọng bài viết này đã cung cấp cho bạn những thông tin cần thiết để bắt đầu sử dụng PDO trong dự án của mình.

