所以我制作了这个文件,它上传 .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/