PHP / MySQL插入错误的列

时间:2016-05-14 21:46:19

标签: php mysql

编写我的代码以使用特定的.cvs格式,它适用于我拥有的文件格式。现在.cvs文件的格式已经改变。

所以现在看起来一切都在插入,但它已经转移了。更具体地说,一切都向右移动了一整列。

我能够修改代码使其进一步向右移动,但是我向左移动它是不成功的。

这是我的代码中存在问题的部分:

if($deleteSuccess == 1){

    echo "Now inserting all new records";
    $handle = fopen($target_file, "r");
    $count = 0;
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
      $name = $data[0];
      $correct0 = str_replace("'", "", $name);
      $correct1 = str_replace("'", "", $data[1]);
      $correct2 = str_replace("'", "", $data[2]);
      $correct3 = str_replace("'", "", $data[3]);
      $correct4 = str_replace("'", "", $data[4]);
      $correct5 = str_replace("'", "", $data[5]);
      $correct6 = str_replace("'", "", $data[6]);
      $correct7 = str_replace("'", "", $data[7]);


      $import="INSERT into DVDCatalog.testtable(`Volume Name`,`DVD Number`,`Type`,`Category`,`Date`,`Author`,`Availablity`,`Picture`) values('$name','$correct1','$correct2','$correct3','$correct4','$correct5','$correct6','$correct7')";
      $count = $count + 1;
      mysqli_query($conn, $import);
      if(mysqli_error($conn)){
          echo "<br> Problem with --> ".$import."<br>";

感谢。

1 个答案:

答案 0 :(得分:0)

如果所有内容都向右移动了1列,那么以前在$data[0]$data[1]等中的数据现在位于$data[1]$data[2]要获得与以前相同的插入数据,您不应该对$data[0]执行任何操作,因为这是添加到CSV文件但不对应的新字段旧格式。

所以它应该是:

  $correct0 = str_replace("'", "", $data[1]);
  $correct1 = str_replace("'", "", $data[2]);
  $correct2 = str_replace("'", "", $data[3]);
  $correct3 = str_replace("'", "", $data[4]);
  $correct4 = str_replace("'", "", $data[5]);
  $correct5 = str_replace("'", "", $data[6]);
  $correct6 = str_replace("'", "", $data[7]);
  $correct7 = str_replace("'", "", $data[8]);