You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP将文本文件批量导入SQLite数据表?

批量导入数据到SQLite的weekData表

别担心,SQLite完全可以实现批量数据导入,而且有几种高效的方案适配你的开发场景,下面给你详细拆解:

方法一:SQLite命令行工具(快速导入)

如果你只是需要快速把文本数据导入数据库,SQLite自带的.import命令就非常好用,前提是你的文本文件格式和表结构匹配(比如用逗号/制表符分隔每一行的week1-week4数值)。

操作步骤:

  1. 确保你的文本文件(比如data.txt)每一行的格式是:week1值,week2值,week3值,week4值(或者用制表符分隔,根据你的文件调整)
  2. 打开SQLite命令行,连接到你的数据库:
    sqlite3 your_database.db
    
  3. 执行导入命令(如果是逗号分隔):
    .mode csv
    .import data.txt weekData
    
    如果是制表符分隔,把.mode csv改成.mode tabs就行。

方法二:代码层面批量插入(适合你的开发程序)

从你创建表的代码来看是PHP环境,用代码批量插入更灵活,而且通过事务包裹批量操作能大幅提升效率(避免每次插入都提交一次事务),这对大量数据导入尤为重要。

示例代码:

// 假设你的文本文件每行是逗号分隔的四个整数,比如:10,20,30,40
$filePath = 'data.txt';
$db = new PDO('sqlite:your_database.db');

// 开启事务,这是提升批量插入效率的核心
$db->beginTransaction();

try {
    // 准备预处理插入语句(安全且高效)
    $stmt = $db->prepare('INSERT INTO weekData (week1, week2, week3, week4) VALUES (:w1, :w2, :w3, :w4)');
    
    // 逐行读取文本文件
    $handle = fopen($filePath, 'r');
    while (($line = fgets($handle)) !== false) {
        // 去除换行符并分割成数组,转成整数类型
        $values = array_map('intval', explode(',', trim($line)));
        // 确保每行数据列数匹配表结构
        if (count($values) === 4) {
            $stmt->bindParam(':w1', $values[0]);
            $stmt->bindParam(':w2', $values[1]);
            $stmt->bindParam(':w3', $values[2]);
            $stmt->bindParam(':w4', $values[3]);
            $stmt->execute();
        }
    }
    fclose($handle);
    
    // 提交事务,完成导入
    $db->commit();
    echo "数据导入完成!";
} catch (PDOException $e) {
    // 出错时回滚事务,避免脏数据
    $db->rollBack();
    echo "导入失败:" . $e->getMessage();
}

关键注意事项:

  • 一定要开事务:SQLite默认每次插入都会自动提交事务,批量插入时开启手动事务能把插入速度提升几十甚至上百倍。
  • 文本格式要匹配:确保每行的数值数量和表的列数一致,并且是整数类型(如果有非整数数据,要调整类型转换逻辑)。
  • 用预处理语句:不仅能避免SQL注入风险(哪怕是本地数据也建议保持好习惯),还比每次拼接SQL字符串的效率更高。

补充说明

那些说SQLite无法导入的说法是不准确的,它只是没有像大型数据库那样有复杂的专用导入工具,但基础的批量导入完全没问题,完全能支撑你后续生成直方图等数据分析需求。


内容的提问来源于stack exchange,提问作者TheBiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:07:52