首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过php将csv文件加载到mysql中

问通过php将csv文件加载到mysql中
EN

Stack Overflow用户
提问于 2013-02-02 08:15:15
回答 5查看 13.2K关注 0票数 1

可能重复: Importing CSV data using PHP/MySQL

请告诉我通过PHP表单将文件导入MySQL数据库的最简单方法。

EN

回答 5

Stack Overflow用户

发布于 2013-02-02 08:36:11

试试看。这使用一个函数将文件的行读入字符串数组,然后循环遍历每一行并将列值存储到表中。显然,您需要插入db连接设置和正确的查询。

代码语言:javascript
复制
function loadData()
{
   $lines = readInputFromFile("myCSV.csv");
   for ($i = 0; $i < count($lines); $i++)
   (
      $columns = explode(",", $lines[$i]);
      $conn = new PDO("mysql:host=YOUR_HOST;port=YOUR_PORT;dbname=YOUR_DBNAME", "UserName", "Password");

      $query = "INSERT INTO MYTABLE VALUES ('".$columns[0]."', '".$columns[1]."', '".$columns[2]."')";      
      $stmt = $conn->prepare($query);
      $stmt->execute();
   )
}

function readInputFromFile($file)
{
   $fh = fopen($file, 'r');
   while (!feof($fh))
   {
      $ln = fgets($fh);
      $parts[] = $ln;
   }

   fclose($fh);

   return $parts;
}
票数 2
EN

Stack Overflow用户

发布于 2013-02-02 08:17:34

它可以通过使用fgetcsv函数来完成。

http://php.net/manual/en/function.fgetcsv.php

然后,使用Mysql INSERT函数将数据保存到数据库中。

票数 1
EN

Stack Overflow用户

发布于 2013-02-02 08:18:38

MySQL有一个特性加载数据INFILE,它允许在单个SQL查询中直接导入CSV文件。

简单的例子:

代码语言:javascript
复制
          <?php
            $query = <<<eof
                LOAD DATA INFILE '$fileName'
                 INTO TABLE tableName
                 FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
                 LINES TERMINATED BY '\n'
                (field1,field2,field3,etc)
            eof;

            $db->query($query);
            ?>

事情就是这么简单。

没有循环,没有大惊小怪。比在PHP中解析它要快得多。

MySQL手册页面:http://dev.mysql.com/doc/refman/5.1/en/load-data.html

希望这对author有帮助

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

https://stackoverflow.com/questions/14659992

复制
相关文章

相似问题

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