Kết nối PHP với MySQL
Nếu bạn là người mới trong giai đoạn lập trình viên, việc biết cách kết nối PHP với MySQL database rất hữu ích. Bạn có thể tùy chỉnh, xem, hoặc quản lý bảng được tạo trong MySQL database. Bài này sẽ chỉ bạn cách dễ nhất để thực hiện việc này.
1. Có nên sử dụng MySQLi hoặc PDO không?
Cả MySQLi và PDO đều có ưu điểm:
PDO làm việc trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLi chỉ làm việc với cơ sở dữ liệu MySQL.
Vì vậy, nếu bạn phải chuyển đổi dự án để sử dụng một cơ sở dữ liệu khác, bạn nên sử dụng PDO. Bạn chỉ phải thay đổi thông tin kết nối và một vài truy vấn. Với MySQLi, bạn sẽ cần phải viết lại toàn bộ code - bao gồm các truy vấn.
Cả hai đều hướng đối tượng, nhưng MySQLi cũng cung cấp một API thủ tục.
Cả hai hỗ trợ PreparedStatements. Các câu lệnh PreparedStatements được bảo vệ khỏi việc SQL injection và rất quan trọng đối với bảo mật ứng dụng web.
2. PHP kết nối với MySQL
Trước khi chúng ta có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng ta cần phải mở một kết nối với máy chủ:
Ví dụ (MySQLi hướng đối tượng)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// tạo kết nối
$conn = new mysqli($servername, $username, $password);
// kiểm tra kết nối
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
PHP là một ngôn ngữ tuyệt vời và phổ biến!
Lưu ý về ví dụ hướng đối tượng ở trên: $connect_error bị lỗi đối vơi bản PHP 5.2.9 và 5.3.0 trở về trước. Nếu bạn cần đảm bảo khả năng tương thích với các phiên bản PHP trước 5.2.9 và 5.3.0, hãy sử dụng code sau thay vào đó:
// kiểm tra kết nối
if (mysqli_connect_error()) {
die("Database connection failed: " . mysqli_connect_error());
}
Ví dụ (MySQLi hướng thủ tục)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// tạo kết nối
$conn = mysqli_connect($servername, $username, $password);
// kiểm tra kết nối
if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Ví dụ (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try
{
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// thiết lập lỗi PDO thành ngoại lệ
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Một lợi ích lớn của PDO là nó có một lớp ngoại lệ để xử lý bất kỳ vấn đề nào có thể xảy ra trong các truy vấn cơ sở dữ liệu của chúng ta. Nếu một ngoại lệ được ném vào trong khối try {}, script sẽ dừng thực hiện và chuyển trực tiếp đến khối catch () {} đầu tiên.
3. Đóng kết nối
Kết nối sẽ tự động đóng khi kịch bản kết thúc. Sau đây là các ví dụ đóng kết nối:
Ví dụ (MySQLi hướng đối tượng)
$conn->close();
Ví dụ (MySQLi hướng thủ tục)
mysqli_close($conn);
Ví dụ (PDO)
$conn = null;
Trên đây là bài viết của eLib.VN về kết nối PHP với MySQL. Trong bài hướng dẫn này, chúng mình đã hướng dẫn cơ bản cách kết nối php tới MySQL database bằng cách dùng MySQLi và PHP Data Objects (PDO). Tùy trường hợp bạn có thể lựa chọn cách dùng tối ưu nhất. Chúc các bạn thành công!