编写代码以使用特定的.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>";
谢谢。
如果所有内容都向右移动了一列,那么以前在$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]);