Để tích hợp MySQL với PHP, bạn có thể sử dụng các phương pháp sau đây:
Dưới đây là hướng dẫn chi tiết về cả hai cách:
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "my_database"; // Tạo kết nối (hướng đối tượng) $conn = new mysqli($servername, $username, $password, $dbname); // Kiểm tra kết nối if ($conn->connect_error) { die("Kết nối thất bại: " . $conn->connect_error); } echo "Kết nối thành công!"; ?>
$sql = "SELECT id, name FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { // Xuất dữ liệu while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. ""; } } else { echo "0 kết quả"; }
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]')"; if ($conn->query($sql) === TRUE) { echo "Thêm dữ liệu thành công!"; } else { echo "Lỗi: " . $sql . "" . $conn->error; }
$conn->close();
<?php $dsn = 'mysql:host=localhost;dbname=my_database'; $username = 'root'; $password = ''; try { // Tạo kết nối PDO $pdo = new PDO($dsn, $username, $password); // Thiết lập PDO để ném lỗi ngoại lệ (Exception) $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Kết nối thành công!"; } catch (PDOException $e) { echo "Kết nối thất bại: " . $e->getMessage(); } ?>
$sql = 'SELECT id, name FROM users'; $stmt = $pdo->query($sql); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID: " . $row['id'] . " - Name: " . $row['name'] . ""; }
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)"; $stmt = $pdo->prepare($sql); // Thêm dữ liệu với giá trị ràng buộc $stmt->execute(['name' => 'Jane Doe', 'email' => '[email protected]']); echo "Dữ liệu đã được thêm thành công!";
Kết nối PDO sẽ tự động được đóng khi tập lệnh kết thúc hoặc khi đối tượng $pdo
không còn được sử dụng nữa. Tuy nhiên, bạn có thể tự đóng kết nối bằng cách đặt giá trị null
:
$pdo = null;
Tiêu chí | MySQLi | PDO |
---|---|---|
Cơ sở dữ liệu hỗ trợ | Chỉ hỗ trợ MySQL | Hỗ trợ nhiều loại CSDL (MySQL, PostgreSQL, SQLite,…) |
Hướng lập trình | Hướng đối tượng và thủ tục | Chỉ hướng đối tượng |
Prepared Statements | Có | Có |
Truy vấn đa dạng | Hỗ trợ đầy đủ | Linh hoạt hơn |
Cả MySQLi và PDO đều là những lựa chọn tốt để tích hợp MySQL với PHP. Tuy nhiên, PDO cung cấp sự linh hoạt hơn và hỗ trợ nhiều hệ quản trị cơ sở dữ liệu khác nhau, trong khi MySQLi chỉ hỗ trợ MySQL.