Kết nối với MySQL

PHP phiên bản 5 trở lên hỗ trợ 3 cách phổ biến sau đây để có thể kết nối với MySQL database:

  • Sử dụng MySQLi viết theo kiểu hướng đối tượng (object oriented)
  • Sử dụng MySQLi viết theo kiểu hướng thủ tục (procedural)
  • Sử dụng PHP Data Objects viết tắt là PDO

Sự khác biệt giữa MySQLi và PDO đó là MySQLi chỉ hỗ trợ kết nối tới cơ sở dữ liệu MySQL trong khi đó PDO hỗ trợ kết nối tới nhiều loại cơ sở dữ liệu khác nhau trong đó có MySQL.

Ngoài ra, PDO còn có một ưu điểm là nó cung cấp cho lập trình viên một API đồng nhất để giao tiếp với nhiều hệ quản trị cơ sở dữ liệu khác nhau. Điều này giúp cho source code sẽ không phải sửa đổi nhiều khi chúng ta chuyển từ sử dụng hệ quản trị cơ sở dữ liệu (ví dụ từ MySQL) sang hệ quản trị cơ sở dữ liệu khác (ví dụ PostgreSQL). Để sử dụng PDO thì bạn cần cài đặt extension này vào PHP.

Cài Đặt

Để sử dụng MySQLi (hướng đối tượng hoặc thủ tục) thì chúng ta cần cài đặt MySQLi extension cho PHP. Tuy nhiên thì extension này thường đã được cài sẵn cùng với quá trình cài đặt PHP. Để kiểm tra xem extionsion này được cài hay chưa bạn có thể sử dụng hàm phpinfo() và tìm kiếm tên extension này. Hoặc nếu như bạn sử dụng Linux thì bạn có thể kiểm tra bằng cách chạy câu lệnh sau trên cửa sổ dòng lệnh:

$ php -m | grep "mysqli"

Tượng tự thì để sử dụng PDO chúng ta cũng cần cài đặt PHP extension. Và thông thường thì extension này cũng đã được cài đặt cùng với PHP. Bạn cũng có thể kiểm tra sự tồn tại của extentions này giống với MySQLi ở trên.

Sử Dụng MySQLi Hướng Đối Tượng

Đoạn mã PHP dưới đây sử dụng MySQLi theo kiểu hướng đối tượng để kết nối tới cơ sở dữ liệu my_test_db thông qua người dùng root với mật khẩu là root_password:

<?php
$db_host = "localhost";
$db_name = "my_test_db";
$db_username = "root";
$db_password  = "root_password";

// Tạo kết nối tới MySQL database server
$db_connection = new mysqli($db_host, $db_username, $db_password, $db_name);

// Kiểm tra kết nối
if ($db_connection->connect_error) {
    die("Lỗi kếtt nối tới cơ sở dữ liệu. Chi tiết lỗi: " . $db_connection->connect_error);
} 

echo "Kết nối thành công!";
?>

Sử Dụng MySQLi viết theo kiểu hướng thủ tục

Đoạn mã PHP dưới đây sử dụng MySQLi theo kiểu hướng thủ tục để kết nối tới cơ sở dữ liệu my_test_db thông qua người dùng root với mật khẩu là root_password:

<?php
$db_host = "localhost";
$db_name = "my_test_db";
$db_username = "root";
$db_password  = "root_password";

// Tạo kết nối tới MySQL database server
$db_connection = mysqli_connect($db_host, $db_username, $db_password, $db_name);

// Kiểm tra kết nối
if ($db_connection) {
    die("Lỗi kếtt nối tới cơ sở dữ liệu. Chi tiết lỗi: " . mysqli_connect_error());
} 

echo "Kết nối thành công!";
?>

Sử Dụng PDO

Đoạn mã PHP dưới đây sử dụng PDO để kết nối tới cơ sở dữ liệu my_test_db thông qua người dùng root với mật khẩu là root_password:

<?php
$db_host = "localhost";
$db_name = "my_test_db";
$db_username = "username";
$db_password = "password";

try {
    $db_connection = new PDO("mysql:host=$db_host;dbname=$db_name", $db_username, $db_password);
    echo "Kết nối thành công"; 
} catch(PDOException $e) {
    die("Lỗi kếtt nối tới cơ sở dữ liệu. Chi tiết lỗi: " . $e->getMessage());
}
?>

PHP

Câu Hỏi
Chưa có câu hỏi nào cho bài hướng dẫn này
Đặt Câu Hỏi
Mời Bạn Bè
Gửi email mời bạn bè
Viết Cùng Tác Giả
Bạn biết về chủ đề này và muốn tham gia viết cùng tác giả?