Laravel 使用 mysql LOAD DATA LOCAL INFILE 配置 PDO参数
阅读 (3305) 2018-05-03 15:04:37
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