1. PHP 支持 SQLite 数据库
PHP 原生支持 SQLite 数据库,非常适合小型 Web 应用。SQLite 是一个轻量级、无服务器的关系型数据库,使用单个文件存储数据,适合嵌入式和小型项目。
如何在 PHP 中使用 SQLite
-
检查环境支持
PHP 内置了对 SQLite 的支持,确保你安装了 PHP 的pdo_sqlite
或sqlite3
扩展。php -m | grep sqlite
如果没有显示,需在
php.ini
中启用:extension=pdo_sqlite extension=sqlite3
-
示例代码:操作 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 的简单数据库库)
- 适用场景:简单记录和小规模数据管理。
-
特点:
- 无需外部数据库。
- 数据以平面文件存储。
- 项目地址:https://github.com/usmanhalalit/flatdb
(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 等选项。