使用一个查询将数千个条目插入MySQL

时间:2014-05-28 16:45:05

标签: mysql arrays bulkinsert

我试图将大约6,000个邮政编码存储到我的数据库中,但当然我不想单独插入它们。

我有一个包含任务所需的邮政编码的文本文件

文本文件如下所示,

SS99 6LB,SS8 9RA,SS7 9SR,SS7 9SS,SS7 9ST

我想在一次点击中将它们全部插入到数据库中。

表结构只是ID(INT),Postcode(VAR)。

2 个答案:

答案 0 :(得分:2)

您可以使用LOAD DATA INFILE

LOAD DATA LOCAL INFILE 'filename.csv' 
INTO TABLE tablename
LINES TERMINATED BY ','
(Postcode) 
;

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

答案 1 :(得分:0)

首先将文本文本中的此文本分配给字符串

$string ='that text';
$arr = explode(",",$string);

这是一个想法/概念,你现在可以做一个循环

$sql="";
foreach($arr as $ar)
{
 //$sql.=($sql=="")?"":",";
 //$sql.=$ar;
  mysql_query("insert into table(Postcodes) values ($ar)");
}

根据您的服务器检查postecodes周围的引号语法

对于性能,您可以编写它将在一个查询中插入所有

$sql="insert into table(Postcodes) values";
foreach($arr as $ar)
{
 $sql.=($sql=="insert into table(Postcodes) values")?"":",";

  $sql.="(".$ar.")";
}
mysql_query($sql);