首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何一次将大量数据插入mySQL数据库?

问如何一次将大量数据插入mySQL数据库?
EN

Stack Overflow用户
提问于 2015-11-19 09:21:46
回答 4查看 3.2K关注 0票数 2

我将文本文件中的数据插入到mySQL数据库中,同时会插入大约6000条或更多条目。

代码语言:javascript
复制
try {
   $sql = "INSERT INTO data (id,name,date,place) values(?,?,?,?) ";
   $q = $pdo->prepare($sql);
   foreach($data as $row) {
      $q->execute(array($row['id'], $row['name'], $row['date'], $row['place']));
   }
}
catch (PDOException $pe) {
   echo $pe->getMessage();
}
catch (Exception $e ) {
   echo $e->getMessage();
}

我尝试了3000条条目,一切都很好。但是,如果我有更多的数据要插入,发生的情况是,我的页面是空白的,没有任何插入到我的数据库。

是什么导致了这个问题,我该如何解决呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-19 09:29:31

既然您已经有文本文件,那么请使用下面的查询

代码语言:javascript
复制
LOAD DATA INFILE 'file/path/to/file.txt' 
INTO TABLE table-name 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

确保文件中的数据与表行的顺序一致。

在这里阅读更多https://dev.mysql.com/doc/refman/5.6/en/load-data.html

票数 5
EN

Stack Overflow用户

发布于 2015-11-19 09:28:02

使用值语法的NSERT语句可以插入多行。为此,请包含多个列值列表,每个列值括在括号内,并以逗号分隔。示例:

代码语言:javascript
复制
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

来自如何在MySQL中执行批处理插入

票数 1
EN

Stack Overflow用户

发布于 2015-11-19 09:28:14

与其在一个循环中运行多个查询,不如使用多插入语法。示例:

代码语言:javascript
复制
INSERT INTO data (id,name,date,place) VALUES (:id1,:name1,:date1,:place1), (:id2,:name2,:date2,:place2), (:id3,:name3,:date3,:place3);

使用准备好的语句执行多个插入时,请检查这篇文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33799713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档