php - CSV导入功能在插入mysql数据库时添加前面的双引号

标签 php mysql csv

所以我制作了这个文件,它上传 .csv 文件,然后将数据插入 mysql 数据库中,但是,由于某种原因,它在开头添加了一个额外的 "(引号) CSV 文件中的数据。 因此,对于像这样的 Laptop,Apple Mac,750,100,50 ,它将按以下方式插入数据库。

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

我不知道为什么,但它在笔记本电脑之前添加了引号。

我可以做什么来解决这个问题? 这是我的代码:-

<?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 图像链接:- http://i.imgur.com/WkpYeeU.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.

关于php - CSV导入功能在插入mysql数据库时添加前面的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23551587/

相关文章:

python - 基于列的分组和取消分组

mysql - 在数据库中查找尽可能接近的精确匹配 - 哪种方式更好?

php - MySQL select语句-如何计算当前排名

javascript - 计算网络 map 应用程序中栅格的平均值

php - 如何水平并排对齐两个简码元素

php - 使用随机盐改进密码散列

php - 在所有限制页面或仅在登录时检查密码?

mysql - SQL : Select the next datetime in the future from one of two columns

mysql - c语言与mysql(如何将mySQL数据库包含到程序中)

MySQL Select,其中字段不在另一个字段的 CSV 列表中