提交我怎麼能捕獲「nicefile.csv」,並在文件中計算行數後,我從形式POST提交後?我嘗試了類似$csvlinecount = count(file('$_FILES[csv]'));
而沒有結果。原因是我有我的數據庫中的行之前和之後我導入csv值,但我在整理重複條目的行數的代碼。因此,知道前面的條目數是100還是200後很有趣,然後我知道它導入了100條新線。但是,如果我不知道csv文件中的行數,我不知道它在導入過程中跳過了多少。計數線以CSV文件形式
<?php
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 IGNORE INTO wifi (bssid, channel, privacy, ciper, auth, power, essid, latitude, longitude, first_seen, last_seen) VALUES
(
'".addslashes($data[0])."',
'".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])."'
)
");
}
} while ($data = fgetcsv($handle,1000,","));
//redirect
header('Location: index.php/upload?success=1'); die;
}
//Count after import
$after = mysql_query("SELECT * FROM wifi");
$num_rows_after = mysql_num_rows($after);
//echo stats
echo "Number of rows before - ";
echo "$num_rows_before";
<br>
echo "Number of rows after - ";
echo "$num_rows_after";
//generic success notice
if (!empty($_GET[success])) { echo "<br><b>Result: Your file is imported!</b><br>"; }
//Close connection to databse
mysql_close($connect) ;
?>
數'和addslashes()不推薦'。相反,嘗試[PDO](http://php.net/pdo) –
或'mysql_real_escape_string()'在最低限度。 –