CSV导入功能,在mysql数据库中插入时,在前面添加双引号



所以我制作了这个文件,它上传了一个。CSV文件,然后在mysql数据库中插入数据,但是,由于某种原因,它在CSV文件的数据开始处添加了一个额外的"(引号)。所以对于一些东西:- 笔记本电脑,苹果Mac,750,100,50像这样,它会以以下方式插入到数据库中。

Category  Product Name Price1  Price2  Price3 
"Laptop     Apple Mac    750      100     50

我不知道为什么,但是它在Laptop之前加了一个引号。

我能做些什么来解决这个问题?下面是我的代码:-

<?php  
session_start();
include '../inc/inc.functions.php';
include '../dbconnector.php';
include '../dbpdo.php';
include '../inc/inc.config.php';
if((isset($_SESSION['admin'])) && ($_SESSION['admin'] == 1))
{
    $adminusername = $_SESSION['username'];
    $date=date('Y-m-d');
    if ($_FILES[csv][size] > 0) { 
        //get the csv file 
        $file = $_FILES[csv][tmp_name]; 
        $handle = fopen($file,"r"); 
         //prepare the statement for the insertion of the record via PDO
        try{
            global $conn;
            $statement = $conn->prepare("INSERT INTO products(category,productname,baseprice,basepricewd,basepricenw,addedby,addedon) VALUES (?,?,?,?,?,?,?)");
            //loop through the csv file and insert into database 
            while ($data = fgetcsv($handle,1000,",","'"))
            {
                if ($data[0]) { 
                    $statement->execute(array(
                        $data[0],
                        $data[1],
                        $data[2],
                        $data[3],
                        $data[4],
                        $adminusername,
                        $date));
                } 
            }
        // 
    }//try
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }

        //redirect 
       header('Location: admin_importproducts_home.php?success=1'); die; 
      //  echo "Products imported successfully";
    } 
 }
   else
{
    header('Location:http://domain.co.uk/' . $config["admindir"] . '/adminlogin');
}
?>
CSV文件

Laptop,Apple Mac,750,100,50

CSV图像链接:- https://i.stack.imgur.com/4v7Ez.png

str_replace('"', '', $data[0] );
str_replace('"', '', $data[1] );
str_replace('"', '', $data[2] );
str_replace('"', '', $data[3] );
str_replace('"', '', $data[4] );
will solve the problem.

最新更新