我正在使用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>";
}
答案 0 :(得分:5)
您可以尝试使用MySQL内置函数插入CSV数据,如果您的数据结构与表格结构相同,则非常简单:
$sql = "LOAD DATA INFILE '$filename' INTO TABLE Users
FIELDS TERMINATED BY ','"
答案 1 :(得分:3)
你在找这样的东西吗?
我没有测试,因为我没有您的样本数据但是请试一试。
<?php
$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>";
}
}
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>";
}
?>