【发布时间】:2013-04-12 17:34:10
【问题描述】:
我正在尝试为我的网站创建一个 CSV 导入器。我需要使用 CSV 文件将一些广告系列导入我的 MySQL 数据库。
CSV 文件有 12 个标题,但我只想从标题 1、3、5、6 和 8 导入数据。下面的代码导入了 csv 文件,但是,它把每个标题的数据放在了错误的位置在数据库中的位置。
谁能告诉我错误在哪里?
谢谢 -
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
mysql_query("INSERT INTO campaigns (campaignname, url, requirements, rate, countrys) VALUES
(
'".addslashes($data[1])."',
'".addslashes($data[3])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[8])."'
)
");
}
} while ($data = fgetcsv($handle,0,",","'"));
//
//redirect
header('Location: import.php?success=1'); die;
}
【问题讨论】:
-
你能打印_r $data
-
阅读How to get useful error messages in PHP?,做一些调试,告诉我们错误在哪里。然后我们可以帮助您有效地解决它。
-
您确定您使用的是正确的索引吗? title1 是数组的第一列还是第二列?
-
请使用
mysql_real_escape_string而不是addslashes进行转义