Cách sử dụng Module MySQL (MariaDB) tích hợp của ServBay
Là một công cụ phát triển web tích hợp mạnh mẽ, ServBay được tích hợp sẵn module MySQL, và quá trình kích hoạt nó rất đơn giản. MariaDB là một nhánh của MySQL, hoàn toàn tương thích với MySQL và được sử dụng rộng rãi trong phát triển web hiện đại. Qua ServBay, các nhà phát triển có thể dễ dàng kích hoạt module MySQL để sử dụng MariaDB trong các ứng dụng PHP để lưu trữ và quản lý dữ liệu.
Sự khác biệt giữa MySQL và MariaDB
MySQL và MariaDB đều là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phổ biến, nhưng chúng có một số khác biệt:
Nguồn gốc:
- MySQL: Được phát triển bởi công ty MySQL AB, sau đó được Sun Microsystems mua lại và cuối cùng là Oracle mua lại.
- MariaDB: Được tạo ra bởi Michael Widenius, người sáng lập MySQL, như một nhánh của MySQL nhằm giữ lên mã nguồn mở và tự do.
Tương thích:
- MySQL: Được sử dụng rộng rãi, nhiều ứng dụng lớn và hệ thống doanh nghiệp dựa vào nó.
- MariaDB: Hoàn toàn tương thích với MySQL, hầu hết tất cả các tính năng và cú pháp của MySQL đều có thể sử dụng trong MariaDB.
Hiệu suất và tính năng:
- MySQL: Trong một số trường hợp cụ thể, MySQL có thể có tối ưu hóa và hiệu suất tốt hơn.
- MariaDB: Được đẩy mạnh bởi cộng đồng mã nguồn mở, MariaDB đã giới thiệu nhiều tính năng mới và cải thiện hiệu suất, như bộ xử lý luồng tốt hơn, cột ảo và bộ lưu trữ.
Phiên bản module MySQL (MariaDB) đi kèm với ServBay
ServBay hỗ trợ nhiều phiên bản PHP, và đã cài đặt và kích hoạt sẵn module MySQL cho mỗi phiên bản. Đặc biệt, ServBay đi kèm với ba loại module MySQL sau:
- MySQL Native Driver (mysqlnd): Trình điều khiển bản địa của PHP, dùng để giao tiếp với cơ sở dữ liệu MySQL, cung cấp hiệu suất và quản lý bộ nhớ tốt hơn.
- MySQLi: Phần mở rộng cải tiến của MySQL, cung cấp cả giao diện hướng đối tượng và hướng thủ tục, hỗ trợ câu lệnh đã chuẩn bị, giao dịch, quy trình lưu trữ và nhiều truy vấn.
- PDO (PHP Data Objects): Giao diện truy cập cơ sở dữ liệu hướng đối tượng nhẹ, hỗ trợ nhiều loại cơ sở dữ liệu, bao gồm MySQL, PostgreSQL, SQLite, v.v.
Cách kích hoạt module MySQL
Mặc định, module MySQL đã được kích hoạt, không cần thêm cấu hình nào khác.
Sự khác biệt giữa ba module MySQL
MySQL Native Driver (mysqlnd):
- Giới thiệu: mysqlnd là trình điều khiển bản địa của PHP, dùng để giao tiếp với cơ sở dữ liệu MySQL.
- Đặc điểm: Nó cung cấp hiệu suất và quản lý bộ nhớ tốt hơn và là trình điều khiển mặc định của PHP từ phiên bản 5.3 trở lên.
- Ưu điểm: Sử dụng bộ nhớ hiệu quả hơn, thực thi truy vấn nhanh hơn, hỗ trợ truy vấn bất đồng bộ và khả năng mở rộng dựa vào plugin.
MySQLi:
- Giới thiệu: MySQL Improved Extension (MySQLi) là phần mở rộng cải tiến của MySQL, cung cấp hai giao diện: hướng đối tượng và hướng thủ tục.
- Đặc điểm: Hỗ trợ câu lệnh đã chuẩn bị, giao dịch, quy trình lưu trữ và nhiều truy vấn.
- Ưu điểm: Thực thi truy vấn an toàn hơn (ngăn chặn SQL injection), nhiều tính năng hơn và hiệu suất tốt hơn.
PDO (PHP Data Objects):
- Giới thiệu: PDO là một giao diện truy cập cơ sở dữ liệu nhẹ, hướng đối tượng, hỗ trợ nhiều loại cơ sở dữ liệu, bao gồm MySQL, PostgreSQL, SQLite, v.v.
- Đặc điểm: Cung cấp giao diện API đồng nhất, hỗ trợ câu lệnh đã chuẩn bị và giao dịch.
- Ưu điểm: Tương thích xuyên cơ sở dữ liệu, thực thi truy vấn an toàn hơn (ngăn chặn SQL injection) và mã đơn giản hơn.
Sử dụng MySQL trong mã PHP
Sau khi kích hoạt module MySQL, bạn có thể sử dụng MySQLi hoặc PDO trong mã PHP để thực hiện các thao tác cơ sở dữ liệu. Dưới đây là hai ví dụ đơn giản, một là cách dùng tiêu chuẩn của MySQLi, và một là cách dùng của PDO.
Mã ví dụ (cách dùng tiêu chuẩn MySQLi)
<?php
// Kết nối đến cơ sở dữ liệu MariaDB
$conn = new mysqli('localhost', 'servbay_user', 'your_password', 'servbay_db');
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối thất bại: " . $conn->connect_error);
}
// Chèn dữ liệu
$sql = "INSERT INTO users (name, email, age) VALUES ('ServBay', '[email protected]', 30)";
if ($conn->query($sql) === TRUE) {
echo "Dữ liệu đã chèn thành công";
} else {
echo "Lỗi khi chèn dữ liệu: " . $conn->error;
}
// Truy vấn dữ liệu
$sql = "SELECT * FROM users WHERE name = 'ServBay'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Dữ liệu truy vấn: ";
print_r($row);
}
} else {
echo "Không tìm thấy kết quả";
}
// Đóng kết nối cơ sở dữ liệu
$conn->close();
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Mã ví dụ (cách dùng PDO)
<?php
try {
// Tạo một thể hiện mới của PDO
$dsn = 'mysql:host=localhost;dbname=servbay_db';
$username = 'servbay_user';
$password = 'your_password';
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
$pdo = new PDO($dsn, $username, $password, $options);
// Chèn dữ liệu
$stmt = $pdo->prepare("INSERT INTO users (name, email, age) VALUES (:name, :email, :age)");
$stmt->execute([
':name' => 'ServBay',
':email' => '[email protected]',
':age' => 30
]);
echo "Dữ liệu đã chèn thành công";
// Truy vấn dữ liệu
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute([':name' => 'ServBay']);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "Dữ liệu truy vấn: ";
print_r($data);
} catch (PDOException $e) {
echo "Lỗi: " . $e->getMessage();
}
// Đóng kết nối cơ sở dữ liệu (PDO sẽ tự động đóng kết nối)
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Kết luận
ServBay cung cấp cách dễ dàng để quản lý và kích hoạt module MySQL. Thông qua cấu hình đơn giản và khởi động lại, các nhà phát triển có thể nhanh chóng kích hoạt module MySQL trong các phiên bản PHP khác nhau để sử dụng MariaDB trong các ứng dụng PHP cho việc lưu trữ và quản lý dữ liệu. MariaDB với hiệu suất cao, khả năng truy vấn mạnh mẽ và độ toàn vẹn dữ liệu, đã trở thành giải pháp cơ sở dữ liệu không thể thiếu trong phát triển web hiện đại. Với ServBay và MariaDB, các nhà phát triển có thể xây dựng các ứng dụng web hiệu quả và đáng tin cậy.