這個腳本運行良好,但添加了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