×

Hướng dẫn tạo class kết nối SQLite trong PHP đơn giản

SQLite là một cơ sở dữ liệu nhỏ gọn, đơn giản nhưng rất mạnh mẽ, thường được sử dụng trong các ứng dụng web nhỏ hoặc các dự án phát triển. Kết nối đến SQLite bằng PHP rất dễ dàng nhờ vào các hàm và lớp có sẵn. Dưới đây, chúng tôi sẽ hướng dẫn bạn cách tạo một lớp PHP để kết nối và thao tác với cơ sở dữ liệu SQLite một cách đơn giản và hiệu quả.

Giới thiệu về lớp kết nối SQLite trong PHP

Việc tạo ra một lớp PHP để quản lý kết nối với SQLite sẽ giúp tổ chức mã nguồn của bạn tốt hơn và tái sử dụng dễ dàng hơn. Lớp này sẽ đảm bảo rằng bạn không cần phải lặp lại mã kết nối mỗi khi bạn muốn thực hiện một truy vấn, đồng thời cũng giúp dễ dàng quản lý các thao tác khác như thêm, sửa, xóa dữ liệu. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn từ những bước cơ bản nhất để tạo ra một lớp kết nối SQLite đơn giản.

Tạo lớp kết nối SQLite

Bắt đầu, chúng ta sẽ tạo một tập tin PHP, ví dụ như DbConnect.php, để định nghĩa lớp kết nối SQLite.

<?php

class DbConnect {
    private $db;

    public function __construct($db_file) {
        $this->connect($db_file);
    }

    private function connect($db_file) {
        try {
            $this->db = new PDO("sqlite:$db_file");
            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        } catch (PDOException $e) {
            echo "Connection failed: " . $e->getMessage();
        }
    }

    public function getConnection() {
        return $this->db;
    }

    public function closeConnection() {
        $this->db = null;
    }
}
?>

Giải thích mã

  • $db: Biến này sẽ giữ kết nối đến cơ sở dữ liệu.
  • __construct: Hàm khởi tạo sẽ tự động được gọi khi tạo một đối tượng của lớp. Nó nhận một tên tệp cơ sở dữ liệu và gọi phương thức kết nối.
  • connect: Phương thức này sẽ thiết lập kết nối đến SQLite bằng PDO và thiết lập chế độ lỗi.
  • getConnection: Phương thức này cho phép lấy kết nối để sử dụng cho các truy vấn.
  • closeConnection: Phương thức này dùng để đóng kết nối khi không cần thiết nữa.

Thực hiện truy vấn với lớp kết nối SQLite

Bây giờ chúng ta có lớp kết nối, tiếp theo sẽ là cách thực hiện các truy vấn cơ bản như truy vấn SELECT, INSERT, UPDATE và DELETE.

Thực hiện truy vấn SELECT

Chúng ta sẽ tạo một phương thức để lấy dữ liệu từ cơ sở dữ liệu:

public function query($sql, $params = []) {
    try {
        $stmt = $this->db->prepare($sql);
        $stmt->execute($params);
        return $stmt->fetchAll();
    } catch (PDOException $e) {
        echo "Query failed: " . $e->getMessage();
        return false;
    }
}

Thực hiện truy vấn INSERT

Để chèn dữ liệu vào bảng, chúng ta có thể tạo một phương thức như sau:

public function insert($sql, $params = []) {
    try {
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($params);
    } catch (PDOException $e) {
        echo "Insert failed: " . $e->getMessage();
        return false;
    }
}

Thực hiện truy vấn UPDATE

Tương tự như vậy, chúng ta cũng cần một phương thức để cập nhật dữ liệu:

public function update($sql, $params = []) {
    try {
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($params);
    } catch (PDOException $e) {
        echo "Update failed: " . $e->getMessage();
        return false;
    }
}

Thực hiện truy vấn DELETE

Cuối cùng, để xóa dữ liệu, chúng ta cũng tạo một phương thức:

public function delete($sql, $params = []) {
    try {
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($params);
    } catch (PDOException $e) {
        echo "Delete failed: " . $e->getMessage();
        return false;
    }
}

Ví dụ sử dụng lớp kết nối SQLite

Sau khi đã xây dựng xong lớp DbConnect, bây giờ chúng ta sẽ xem xét cách sử dụng nó trong thực tế.

  1. Tạo cơ sở dữ liệu và bảng:
$db = new DbConnect('test.db');
$dbConnection = $db->getConnection();

$dbConnection->exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)");
  1. Chèn dữ liệu:
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$params = [
    ':name' => 'John Doe',
    ':email' => 'john@example.com'
];
$db->insert($sql, $params);
  1. Truy vấn dữ liệu:
$sql = "SELECT * FROM users";
$users = $db->query($sql);

foreach ($users as $user) {
    echo "ID: " . $user['id'] . " - Name: " . $user['name'] . " - Email: " . $user['email'] . "<br>";
}
  1. Cập nhật dữ liệu:
$sql = "UPDATE users SET email = :email WHERE id = :id";
$params = [
    ':email' => 'john_new@example.com',
    ':id' => 1
];
$db->update($sql, $params);
  1. Xóa dữ liệu:
$sql = "DELETE FROM users WHERE id = :id";
$params = [':id' => 1];
$db->delete($sql, $params);

Kết luận

Trên đây là hướng dẫn chi tiết để tạo một lớp kết nối SQLite đơn giản trong PHP. Lớp này giúp bạn quản lý kết nối cũng như thực hiện các truy vấn một cách dễ dàng và hiệu quả. Với lớp kết nối này, bạn có thể phát triển các ứng dụng sử dụng SQLite mà không gặp phải những rắc rối trong việc quản lý kết nối và truy vấn cơ sở dữ liệu. Hãy thử nghiệm và phát triển thêm theo nhu cầu của bạn!

Comments