这个脚本运行良好,但添加了excel文件(标题名称)的第一行。我想要忽略循环第一行 - 请检查脚本 -删除CSV文件的第一行 - php csv文件上传问题
<?php
//connect to the database
$connect = mysql_connect("localhost","root","password");
mysql_select_db("mydatadb",$connect); //select the table
//
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 bulk_listings (name, description, owner_id, list_in, auction_type, start_time, start_time_type, end_time, end_time_type, duration, quantity, category_id, addl_category_id, currency, start_price, reserve_price, buyout_price, is_offer, offer_min, offer_max) VALUES
(
'".addslashes($data[1])."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."',
'".addslashes($data[7])."',
'".addslashes($data[8])."',
'".addslashes($data[9])."',
'".addslashes($data[10])."',
'".addslashes($data[11])."',
'".addslashes($data[12])."',
'".addslashes($data[13])."',
'".addslashes($data[14])."',
'".addslashes($data[15])."',
'".addslashes($data[16])."',
'".addslashes($data[17])."',
'".addslashes($data[18])."',
'".addslashes($data[19])."',
'".addslashes($data[20])."'
)
");
}
}
while ($data = fgetcsv($handle,10000,","));
//redirect
header('Location: import.php?success=1'); die;
}
?>
称为Import.php
<?php
//connect to the database
mysql_connect ("localhost","root","password")
or die ('Error: ' . mysql_error());
echo "connected to database!";
mysql_select_db ("mydatadb");
// Insert data into table
$name = mysql_real_escape_string($data[1]);
$description = mysql_real_escape_string($data[2]);
$owner_id = mysql_real_escape_string($data[3]);
$list_in = mysql_real_escape_string($data[4]);
$auction_type = mysql_real_escape_string($data[5]);
$start_time = mysql_real_escape_string($data[6]);
$start_time_type = mysql_real_escape_string($data[7]);
$end_time = mysql_real_escape_string($data[8]);
$end_time_type = mysql_real_escape_string($data[9]);
$duration = mysql_real_escape_string($data[10]);
$quantity = mysql_real_escape_string($data[11]);
$category_id = mysql_real_escape_string($data[12]);
$addl_category_id = mysql_real_escape_string($data[13]);
$currency = mysql_real_escape_string($data[14]);
$start_price = mysql_real_escape_string($data[15]);
$reserve_price = mysql_real_escape_string($data[16]);
$buyout_price = mysql_real_escape_string($data[17]);
$is_offer = mysql_real_escape_string($data[18]);
$offer_min = mysql_real_escape_string($data[19]);
$offer_max = mysql_real_escape_string($data[20]);
$action = mysql_real_escape_string('insert php code for button here');
$query = "INSERT INTO bulk_listings
(name, description, owner_id, list_in, auction_type, start_time, start_time_type, end_time, end_time_type, duration, quantity, category_id, addl_category_id, currency, start_price, reserve_price, buyout_price, is_offer, offer_min, offer_max)
VALUES
('$name', '$description', '$owner_id', '$list_in', '$auction_type', '$start_time', '$start_time_type', '$end_time', '$end_time_type', '$duration', '$quantity', '$category_id', '$addl_category_id', '$currency', '$start_price', '$reserve_price', '$buyout_price', '$is_offer', '$offer_min', '$offer_max') ";
mysql_query($query) or die ('Error updating database');
echo "Database updated successfully!";
?>
</body>
</html>
另一个文件我试过 - fgetcsv()&而($数据= fgetcsv( $处理,10000, “”));但仍然没有工作。
请帮助我,告诉我在哪里做错了?
感谢
扭转你做/同时,使之成为简单而循环;否则第一个$ data行只会被提取__after__在循环内执行代码 – 2013-05-09 10:19:24
并学习如何使用MySQLi和预处理语句,当你像这样大量插入时,准备好的语句可以提高性能 – 2013-05-09 10:21:25
我也可以建议(如果你的不能使用mysqli)查看'array_map()'和'implode()'来减少你的代码。即array_map $ data with mysql_real_escape_string,'$ data_values =''“。implode(”','“,$ data)。”'“;' – Waygood 2013-05-09 10:23:45