适用于PHP的轻量级数据库

1. PHP 支持 SQLite 数据库

PHP 原生支持 SQLite 数据库,非常适合小型 Web 应用。SQLite 是一个轻量级、无服务器的关系型数据库,使用单个文件存储数据,适合嵌入式和小型项目。

如何在 PHP 中使用 SQLite

  1. 检查环境支持
    PHP 内置了对 SQLite 的支持,确保你安装了 PHP 的 pdo_sqlitesqlite3 扩展。

    php -m | grep sqlite
    

    如果没有显示,需在 php.ini 中启用:

    extension=pdo_sqlite
    extension=sqlite3
    
  2. 示例代码:操作 SQLite 数据库

    <?php
    // 创建/连接 SQLite 数据库文件
    $db = new PDO('sqlite:my_database.sqlite');
    
    // 创建表
    $db->exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
    
    // 插入数据
    $db->exec("INSERT INTO users (name, age) VALUES ('Alice', 30), ('Bob', 25)");
    
    // 查询数据
    $result = $db->query("SELECT * FROM users");
    foreach ($result as $row) {
        echo "ID: {$row['id']}, Name: {$row['name']}, Age: {$row['age']}<br>";
    }
    
    // 关闭连接
    $db = null;
    ?>
    

2. 类似 SQLite 的单文件数据库推荐

(1) JSON 文件

  • 适用场景:极小型项目,简单的数据存储。
  • 特点
    • 无需数据库,直接读写 JSON 文件。
    • 性能好,适合低并发场景。
  • 示例代码
    <?php
    $file = 'data.json';
    
    // 写入数据
    $data = [
        ['id' => 1, 'name' => 'Alice', 'age' => 30],
        ['id' => 2, 'name' => 'Bob', 'age' => 25]
    ];
    file_put_contents($file, json_encode($data));
    
    // 读取数据
    $content = file_get_contents($file);
    $users = json_decode($content, true);
    print_r($users);
    ?>
    

(2) FlatfileDB (基于 PHP 的简单数据库库)

(3) TinyDB

  • 适用场景:替代 JSON 文件存储,用于 Web App 中更复杂的数据管理。
  • 特点
    • Python 原生开发,支持简单的数据存储操作。
    • 数据保存在 JSON 文件中。
    • PHP 可通过 REST API 集成。

(4) LowDB

  • 适用场景:JavaScript 和 PHP 项目的跨语言数据存储。
  • 特点
    • 基于 JSON 的单文件数据库。
    • 使用简单,适合小型应用。

(5) LiteDB (C#,可通过 API 集成)

  • 适用场景:跨语言集成需求。
  • 特点
    • 单文件数据库,基于 BSON(类似 MongoDB)。
    • 性能优秀,适合中小型 Web 应用。

3. 选择建议

数据库/存储方式 适用场景 特点
SQLite 小型项目,单文件存储 轻量级,支持 SQL,稳定可靠
JSON 文件 极简存储,配置文件 无需依赖,适合低并发小项目
FlatfileDB 简单数据存储,结构化数据 无需服务器,文件系统友好
TinyDB 小型数据存储,JSON 格式 灵活易用,适合多平台
LiteDB 更复杂的单文件需求 性能好,但需通过 API 集成

总结

  • 如果需要 SQL 功能并追求稳定性,SQLite 是最佳选择。
  • 如果只需要简单的键值对或列表,JSON 文件FlatfileDB 是轻量级的选择。
  • 如果需要更高性能或特定语言支持,可以考虑 LiteDB 等选项。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容