php如何读取CSV大文件并且将其导入数据库示例

 我来答
句心后端开发
2018-11-29 · 专注后端和移动端编程
句心后端开发
采纳数:316 获赞数:624

向TA提问 私信TA
展开全部

思路:

读取csv文件,每读取一行数据,就插入数据库

示例

文件夹结构

/
 file.csv    //csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)
 index.php    //php文件

file.csv

singi,20
lily,19
daming,23

index.php

/**
 * 读取csv文件,每读取一行数据,就插入数据库
 */

//获取数据库实例
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
    $db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

//读取file.csv文件
if (($handle = fopen("file.csv", "r")) !== FALSE) {
    while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
        //写入数据库
        $sth = $db->prepare('insert into test set name=:name,age=:age');
        $sth->bindParam(':name',$row[0],PDO::PARAM_STR,255);
        $sth->bindParam(':age',$row[1],PDO::PARAM_INT);
        $sth->execute();
    }
    fclose($handle);
}

数据表

CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
`age` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;

运行结束后,数据库中会插入csv中的三行数据

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式