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

使用单个csv文件将多个表数据导入mysql,mysql,file-upload,csv,multiple-tables,Mysql,File Upload,Csv,Multiple Tables,我在csv文件中有这个表 现在我有两个mysql表处理这个csv文件 数据A、B、C必须存储在表1中,而数据D、E、F、G、H必须存储在表2中 我有上面格式化的csv文件,如何将其数据上传到MYSQL数据库 这样就可以从同一个文件为不同的表进行输入。可能只能通过自定义脚本(PHP或其他方式) 但通常不难将CSV拆分为两个文件,并使用MySQL中的函数直接导入到单独的表中。它将比使用phpMyAdmin或类似脚本快得多。将数据加载到临时表中,然后拆分到两个表中 然后放下那个临时表。我在某个地方读

我在csv文件中有这个表

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

数据A、B、C必须存储在
表1
中,而数据D、E、F、G、H必须存储在
表2

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


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

可能只能通过自定义脚本(PHP或其他方式)


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

将数据加载到
临时表中,然后拆分到
两个表中


然后
放下
那个
临时表
。我在某个地方读到,php可以做到这一点,但我在php代码中无能为力。

试试这个。它工作得很好,您可以根据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);
  ?>

将粘贴复制到Google文档中并执行以下操作:)