使用单个csv文件将多个表数据导入mysql

时间:2012-04-04 08:38:36

标签: mysql file-upload csv multiple-tables

我在csv文件中有这个表

enter image description here

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

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

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

因此,可以对不同的表进行相同的文件输入。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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 :(得分:0)

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

然后drop temporary table。我在哪里读到php可以做到这一点,但我无法帮助PHP代码。