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

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

本文将详细介绍如何使用 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 相关产品和应用

全部下载

专题列表