我想上傳大量的CSV文件到MySQL數據庫任何人都可以幫助我,表格由10個字段組成,但我只想上傳到表格中沒有標題的5個字段。我想這跟做PHP在瀏覽器將大型CSV文件上傳到Mysql數據庫
$filename = $_FILES['sel_file']['tmp_name'];
<?php
if($_FILES["file"]["type"] != "application/vnd.ms-excel"){
die("This is not a CSV file.");
}
elseif(is_uploaded_file($_FILES['file']['name'])){
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'cbt_software';
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql server');
mysql_select_db('cbt_software') or die(mysql_error());
//Process the CSV file
$handle = fopen($_FILES['file']['name'], "r");
$data = fgetcsv($handle, 1000, ";");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$att0 = mysql_real_escape_string($data[0]);
$att1 = mysql_real_escape_string($data[1]);
$att2 = mysql_real_escape_string($data[2]);
$att3 = mysql_real_escape_string($data[3]);
$att4 = mysql_real_escape_string($data[4]);
$sql = "INSERT INTO `course_reg` (`coursecode`,`coursename`,`coursedescription`,`coursemaster`,`courselevel`)VALUES ('$att0','$att1','$att2','$att3','$att4')";
mysql_query($sql) or die(mysql_error());
}
mysql_close($link);
echo "CSV file successfully imported.";
}
else{
die("You shouldn't be here");
}
?>
起初,這導入所有字段從CSV到數據庫只是一個場後,我的代碼篡改它不recognicing它是個CSV文件。
看來你正在測試上傳的文件是否是Excel電子表格,而不是CSV文件。要麼跳過該檢查,要麼檢查以「.csv」結尾的文件名(當然,這並不意味着它確實是一個CSV文件)。 –
另外,您還沒有檢查到fopen()調用成功。 –
此外,它看起來像你正在看錯文件名 - $ _FILES ['文件'] ['名稱']是客戶端提供的名稱,你需要$ _FILES ['文件'] ['tmp_name']爲上傳的臨時文件的文件名是作爲服務器存儲的。 (將'文件'改爲文件輸入框的名稱。) –