我正在使用 php 将一个 csv 文件导入我的数据库 (Mysql)。 下面的代码仅将第一行(csv 文件中的数据)插入数据库。但它应该向数据库中插入不止一行。
$info = pathinfo($_FILES['file']['name']);
/**
* This checks if the file is a csv file
*/
if(strtolower($info['extension']) == 'csv'){
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0){
//Open the file
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE){
$num = count($emapData);
/**
* Insert data into the database if the columns are
* exactly in three columns
*/
if ($num == 3){
$sql = "INSERT
INTO Users (firstName,surName,indexNo)
VALUES('$emapData[0]','$emapData[1]','$emapData[2]')";
$result=$db->query($sql);
if($result){
echo "<script type=\"text/javascript\">
alert(\"CSV File has been successfully Imported.\");
window.location = \"../administrator/bulkStudentReg.php\"
</script>";
}
else{
echo "<script type=\"text/javascript\">
alert(\"Please Upload CSV File was not successful.\");
window.location = \"../administrator/bulkStudentReg.php\"
</script>";
}
}
else{
echo "<script type=\"text/javascript\">
alert(\"UPLOAD FAILED: Please your csv file contains incomplete column/s. Column should be 3 columns\");
window.location = \"../administrator/bulkStudentReg.php\"
</script>";
}
fclose($file);
}
}
}
else{
echo "<script type=\"text/javascript\">
alert(\"UPLOAD FAILED: Please the file should be in a csv file, eg. students.csv \");
window.location = \"../administrator/bulkStudentReg.php\"
</script>";
}
最佳答案
您可以尝试使用 MySQL 内置函数插入 CSV 数据,如果您的数据结构与您的表结构相同,则非常简单:
$sql = "LOAD DATA INFILE '$filename' INTO TABLE Users
FIELDS TERMINATED BY ','"
检查 MySQL LOAD DATA Documentation了解更多详情
关于php - 通过php导入csv文件到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29470273/