Laravel 使用 mysql LOAD DATA LOCAL INFILE 配置 PDO参数

阅读 (3075)
Laravel 在使用 LOAD DATA LOCAL INFILE 命令批量导入CSV内容时,需增加mysql 连接的PDO配置
LOAD DATA LOCAL INFILE '".storage_path("app/public/csv/text.csv")."' INTO TABLE table1 (phone_no)  SET uid = ".$uid." ……

如使用以上命令导入CSV中第一列数据到table1 (set uid 是直接设置的值,无需从csv中读取)

Laravel 中使用 DB 执行需配置mysql 中的PDO配置

编缉config/database.php

在mysql配置中增加 options

'options'   => [
    PDO::MYSQL_ATTR_LOCAL_INFILE => true
]

以上方法可以导入本地文件到远程数据库。

如果是本地数据库,无需 LOCAL参数, 直接使用 LOAD DATA INFILE使令即可,具体LOAD DATA INFILE可查官方手册

经测试以上命令导入50万单列数据差不多也就3-4秒

更新于:2018-05-03 15:04:37
返回顶部