【问题标题】:import multiple table data into mysql using single csv file使用单个csv文件将多个表数据导入mysql
【发布时间】:2012-04-17 22:53:54
【问题描述】:

我在 csv 文件中有这个表

现在我有两个处理这个 csv 文件的 mysql 表,

数据 A、B、C 必须存储在 Table1 中,而数据 D、E、F、G、H 必须存储在 Table2 中。

我有上述格式的 csv 文件,如何将其数据上传到MYSQL 数据库??

这样就可以从同一个文件输入不同的表。

【问题讨论】:

标签: mysql file-upload csv multiple-tables


【解决方案1】:

试试这个效果很好,您可以根据 CSV 文件中的列数添加尽可能多的值。

  <?php   

 $fname = $_FILES['csv_file']['name'];     
  $chk_ext = explode(".",$fname);             

        $filename = $_FILES['csv_file']['tmp_      name'];   
 $handle = fopen($filename, "r");      
 if(!$handle){
 die ('Cannot open file for reading');
  }      
              while (($data = fgetcsv($handle,      10000, ",")) !== FALSE)
 {
          $query = "INSERT INTO tablename        (col1_csv, col2_csv)
 values ('$data[0]', '$data[1]');
   mysql_query($query) 
   or die(mysql_error());


        $query1 = "INSERT INTO tablename        (col1_csv, col2_csv)
    values ('$data[0]', '$data[1]');
   mysql_query($query1) 
 or die(mysql_error());
 }
 fclose($handle);
  ?>

【讨论】:

    【解决方案2】:

    可能只能通过自定义脚本(PHP 左右)...

    但通常不难将 CSV 拆分为 2 个文件,然后直接使用 MySQL 中的 LOAD_DATA 函数将这两个文件导入单独的表中。这将比使用 phpMyAdmin 或类似脚本快得多。

    【讨论】:

      【解决方案3】:

      将数据加载到temporary table,然后拆分到two tables

      然后drop 那个temporary table。我在某处读到 php 可以做到这一点,但我无法在 php 代码中提供帮助。

      【讨论】:

        猜你喜欢
        • 2018-01-05
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-31
        • 2012-01-22
        • 2018-03-31
        相关资源
        最近更新 更多