PHP 操作 SQLite 数据库完整示例:创建、读写与查询

阿麦
阿麦
发布时间:2026-10-13| 5人浏览过
原创

本文将详细介绍如何使用 PHP 对 SQLite 数据库进行初始化、建表、数据插入及读取操作。从基础的文件创建到现代 PHP 推荐的 PDO 扩展使用,提供清晰的操作步骤与完整的代码示例,帮助开发者快速掌握轻量级本地数据库的应用。

SQLite 在 PHP 中的优势

SQLite 是一款轻型的进程内数据库引擎,其核心是无声无息且免配置的。它的设计目标是嵌入式的,占用资源极低,非常适合嵌入式设备或小型应用。相比 MySQL 或 PostgreSQL,SQLite 无需单独的服务器进程,直接通过文件即可操作数据,支持 Windows、Linux、Unix 等主流操作系统,并与 PHP 完美结合。自 PHP 5 起,SQLite 的支持程度大幅提升,使其成为快速原型开发和小型项目的理想选择。

传统方法回顾与注意事项

在早期的 PHP 教程中,常常见到使用 sqlite_open、sqlite_query 等函数进行操作。然而,这些函数在现代 PHP 版本(特别是 PHP 7 及以后)中已被彻底移除或标记为过时。如果直接使用旧版代码,会导致严重兼容性问题甚至无法运行。因此,了解其逻辑很有帮助,但实际开发必须采用新的 API。

第1步:准备数据库文件与环境

SQLite 数据库本质上就是一个单一的文件。第一步通常是确保该文件存在。

  • 目的:建立数据存储载体。
  • 操作:检查当前目录下是否存在目标 .db 文件,若不存在则创建空文件。
<?php
$db_name = "upload.db";
// 创建数据库文件,文件内容为空
if (!file_exists($db_name)) {
    if (!($fp = fopen($db_name, "w+"))) {
        die("Create database file error.");
    }
    fclose($fp);
}
?>

第2步:使用 PDO 连接数据库

PDO (PHP Data Objects) 是访问数据库的统一接口,具有更好的安全性和灵活性。推荐使用 PDO_SQLite 驱动。

<?php
try {
    // 连接 SQLite 数据库
    $db = new PDO("sqlite:$db_name");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Open sqlite database file failed: " . $e->getMessage());
}
?>

第3步:创建数据表结构

为了存储数据,需要先定义表结构。以下创建一个名为 uploads 的表,包含 ID、文件名和创建时间。

<?php
// 使用 exec 执行非查询语句
$db->exec("DROP TABLE IF EXISTS uploads");
$sql = "CREATE TABLE uploads (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    file_name VARCHAR(200) UNIQUE,
    make_time INTEGER
)";
$db->exec($sql);
?>

第4步:插入数据

使用参数化查询插入数据,以防止 SQL 注入攻击,这是处理用户输入时必须遵循的最佳实践。

<?php
$file_name = 'upload/111.data';
$make_time = time();

$stmt = $db->prepare("INSERT INTO uploads (file_name, make_time) VALUES (?, ?)");
$stmt->execute(array($file_name, $make_time));
?>

第5步:检索与显示数据

通过 SELECT 语句查询数据,并使用循环遍历结果集。

<?php
$result = $db->query("SELECT * FROM uploads");
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    echo "File: " . htmlspecialchars($row['file_name']) . 
         "<br> Time: " . date('Y-m-d H:i:s', $row['make_time']) . "<br>";
}
?>

常见问题排错

在实际操作中,可能会遇到权限错误或路径问题:

  • 权限不足:确保 PHP 进程对存放 .db 文件的目录具有读写权限(通常需要对目录设置 chmod 777 或在 Web 服务器用户下运行)。
  • SQLite 扩展未启用:确认 php.ini 中已取消注释 extension=pdo_sqlite 和 extension=sqlite3。

以上就是 PHP 操作 SQLite 数据库的详细内容,更多关于 PHP SQLite 高级用法与优化技巧的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。