Để tích hợp MySQL với PHP, bạn có thể sử dụng các phương pháp sau đây:
Sử dụng MySQLi (MySQL Improved):
MySQLi là một API được phát triển để làm việc với MySQL và được tích hợp sẵn trong PHP. Nó có thể sử dụng theo hai cách: hướng đối tượng và hướng thủ tục.
Sử dụng PDO (PHP Data Objects):
PDO là một API hướng đối tượng hỗ trợ nhiều hệ quản trị cơ sở dữ liệu khác nhau (bao gồm MySQL). Nó cung cấp một lớp trừu tượng cho các thao tác cơ sở dữ liệu.
Dưới đây là hướng dẫn chi tiết về cả hai cách:
1. Tích hợp MySQL với PHP bằng MySQLi
a. Kết nối cơ sở dữ liệu
<?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!";
?>
b. Thực hiện truy vấn (SELECT)
$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ả";
}
<?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();
}
?>
b. Thực hiện truy vấn (SELECT)
$sql = 'SELECT id, name FROM users';
$stmt = $pdo->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "";
}
c. Chèn dữ liệu (INSERT)
$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!";
d. Đóng kết nối
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;
3. So sánh MySQLi và PDO
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
4. Chọn MySQLi hay PDO?
Sử dụng MySQLi nếu bạn chỉ làm việc với MySQL và cần một API đơn giản.
Sử dụng PDO nếu bạn muốn một giải pháp linh hoạt, có thể dễ dàng chuyển đổi giữa các cơ sở dữ liệu khác mà không phải thay đổi nhiều mã.
Kết luậ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.
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.