2016-11-07 123 views
0

正如标题中所述,我试图通过上传CSV文件到我的PHP页面数据导入到我的表。 这是我从EggSlab从CSV文件导入数据到Mysql表通过PHP

<?php 
 
\t \t \t \t \t 
 
\t \t \t \t \t $servername = "localhost"; 
 
\t \t \t \t \t $username = "root"; 
 
\t \t \t \t \t $password = ""; 
 
\t \t \t \t \t $dbname = "Test"; 
 

 
\t \t \t \t \t // Create connection 
 
\t \t \t \t \t $conn = new mysqli($servername, $username, $password, $dbname); 
 
\t \t \t \t \t // Check connection 
 
\t \t \t \t \t if ($conn->connect_error) { 
 
\t \t \t \t \t \t die("Connection failed: " . $conn->connect_error); 
 
\t \t \t \t \t } 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
?> 
 

 
<html> 
 

 
\t <body> 
 
\t \t 
 
\t \t <form name="import" method="post" enctype="multipart/form-data"> 
 
\t \t <input type="file" name="file" /><br /> 
 
     <input type="submit" name="submit" value="Submit" /> 
 
\t \t </form> 
 
\t \t 
 
\t \t <?php 
 
if(isset($_POST["submit"])) 
 
{ 
 
$file = $_FILES['file']['tmp_name']; 
 
$handle = fopen($file, "r"); 
 
$c = 0; 
 
while(($filesop = fgetcsv($handle, 1000, ",")) !== false) 
 
{ 
 
$name = $filesop[0]; 
 
$email = $filesop[1]; 
 
    
 
$sql = "INSERT INTO `xl` (`Name`, `Email`) VALUES ('$name','$email')"; 
 

 
} 
 
    
 

 
if ($conn->query($sql) === TRUE) { 
 
\t echo "You database has imported successfully"; 
 
} else { 
 
    echo "Error: " . $sql . "<br>" . $conn->error; 
 
} 
 
} 
 

 
?> 
 
\t </body> 
 

 
</html>

的问题是,提交文件时,只有我的文件的最后一行被插入到表得到的代码。任何修改建议使代码插入csv文件的每一行?见下面示例

+1

执行查询在while循环每次迭代。在这里,你只是在最后执行请求,所以有一次,它是你的csv – Berserk

+0

的最后一行,所以,我不确定,但尝试移动while循环中的if语句 – Berserk

+0

查询是在while循环。 –

回答

1

这应该可以解决您的问题。您没有在循环中执行查询。

\t \t <?php 
 
if(isset($_POST["submit"])) 
 
{ 
 
$file = $_FILES['file']['tmp_name']; 
 
$handle = fopen($file, "r"); 
 
$c = 0; 
 
while(($filesop = fgetcsv($handle, 1000, ",")) !== false) 
 
{ 
 
    $name = $filesop[0]; 
 
    $email = $filesop[1]; 
 
    
 
    $sql = "INSERT INTO `xl` (`Name`, `Email`) VALUES ('$name','$email')"; 
 
    if ($conn->query($sql) === TRUE) { 
 
\t echo "You database has imported successfully"; 
 
    } else { 
 
    echo "Error: " . $sql . "<br>" . $conn->error; 
 
    } 
 
} 
 
    
 

 
    
 
} 
 

 
?>

+0

是的,这个工作完美无缺。感谢您的答复。 –

0

CSV文件导入:

<?php 
      $file = $_FILES['file']['tmp_name']; 

      //Read the file 
      $content = file_get_contents($file); 
      //Split file into lines 
      $lines = explode("\n", $content); 

      //Find columns by reading first line 

      for ($i = 1; $i <= 310; $i++) { 
       $data = explode("\t", $lines[$i]); 
       $name = $filesop[0]; 
       $email = $filesop[1]; 

       $sql = "INSERT INTO `xl` (`Name`, `Email`) VALUES ('$name','$email')"; 

     } 
    }