在循环中将CSV文件上传到mysql中的多个表中

时间:2018-01-13 06:51:52

标签: php mysql csv

我在这个论坛上已经阅读了类似的问题,但我仍然无法解决我的问题所以我决定制作新的问题。

我想将CSV文件(单个)上传到mysql数据库,但我希望将其插入到不同的表中,这是我的代码:

$handle = fopen($file_tmp, 'r');
  while (($myData = fgetcsv($handle,1000,';')) !== FALSE) {
    $p1 = mysqli_real_escape_string($db,$myData[0]);
    $p2 = mysqli_real_escape_string($db,$myData[1]);
    $p3 = mysqli_real_escape_string($db,$myData[2]);
    $p4 = mysqli_real_escape_string($db,$myData[3]);
    $p5 = mysqli_real_escape_string($db,$myData[4]);
    $p6 = mysqli_real_escape_string($db,$myData[5]);
    $p7 = mysqli_real_escape_string($db,$myData[6]);
    $p8 = mysqli_real_escape_string($db,$myData[7]);
    $p9 = mysqli_real_escape_string($db,$myData[8]);
    $p10 = mysqli_real_escape_string($db,$myData[9]);
    $p11 = mysqli_real_escape_string($db,$myData[10]);
    $p12 = mysqli_real_escape_string($db,$myData[11]);
    $p13 = mysqli_real_escape_string($db,$myData[12]);
    $p14 = mysqli_real_escape_string($db,$myData[13]);
    $p15 = mysqli_real_escape_string($db,$myData[14]);
    $p16 = mysqli_real_escape_string($db,$myData[15]);
    $p17 = mysqli_real_escape_string($db,$myData[16]);
    $p18 = mysqli_real_escape_string($db,$myData[17]);
    $p19 = mysqli_real_escape_string($db,$myData[18]);
    $p20 = mysqli_real_escape_string($db,$myData[19]);
    $p21 = mysqli_real_escape_string($db,$myData[20]);
    $p22 = mysqli_real_escape_string($db,$myData[21]);

    $sql = "START TRANSACTION;";
    $sql .= "INSERT INTO `kualitas_produk`(`responden`,`p1`,`p2`,`p3`,`p4`,`p5`,`p6`,`p7`,`p8`,`p9`) VALUES ('','$p1','$p2','$p3','$p4','$p5','$p6','$p7','$p8','$p9');";
    $sql .= "SELECT LAST_INSERT_ID() INTO @LASTID;";
    $sql .= "INSERT INTO `harga_produk`(`responden`,`p10`,`p11`,`p12`) VALUES (@LASTID,'$p10','$p11','$p12');";
    $sql .= "INSERT INTO `keputusan_pembelian`(`responden`,`p13`,`p14`,`p15`,`p16`,`p17`,`p18`,`p19`,`p20`,`p21`,`p22`) VALUES (@LASTID, '$p13','$p14','$p15', '$p16','$p17','$p18', '$p19','$p20','$p21', '$p22');";
    $sql .= "INSERT INTO `recap`(`responden`,`kualitas`,`harga`,`keputusan`) VALUES (@LASTID,@LASTID,@LASTID,@LASTID);";
    $sql .= "COMMIT;";

    mysqli_multi_query($db,$sql) or die("Error: ".mysqli_error($db));

  }

  fclose($handle);
  echo "Data Added";
  mysqli_close($db);

但是我收到了这个错误

  

命令不同步;你现在不能运行这个命令

我已经阅读了

  

mysqli_free_result,mysqli_next_result,mysqli_store_result

但我仍然不明白如何使用它。任何帮助将不胜感激。

谢谢。

0 个答案:

没有答案