2014-02-23 72 views
9

比方说, 我想要导入/上传PHP excel文件到MySQL如何导入Excel文件到MySQL数据库从PHP

我的HTML是像下面

​​

PHP代码如下图所示

<?php 
if(isset($_POST["Import"])) 
{ 
    //First we need to make a connection with the database 
    $host='localhost'; // Host Name. 
    $db_user= 'root'; //User Name 
    $db_password= ''; 
    $db= 'product_record'; // Database Name. 
    $conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error()); 
    mysql_select_db($db) or die (mysql_error()); 
    echo $filename=$_FILES["file"]["tmp_name"]; 
    if($_FILES["file"]["size"] > 0) 
    { 
     $file = fopen($filename, "r"); 
     //$sql_data = "SELECT * FROM prod_list_1 "; 
     while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) 
     { 
      //print_r($emapData); 
      //exit(); 
      $sql = "INSERT into prod_list_1(p_bench,p_name,p_price,p_reason) values ('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]')"; 
      mysql_query($sql); 
     } 
     fclose($file); 
     echo 'CSV File has been successfully Imported'; 
     header('Location: index.php'); 
    } 
    else 
     echo 'Invalid File:Please Upload CSV File'; 
} 
?> 

Excel文件就像下面

excel file picture

我想只将第二行值导入到我的表中。请帮助我如何解决它或给我任何资源。我能够上传Excel文件,但它的格式不正确。我想在mysql的4列中上传4列,但它在mysql的1列中上传所有4列。我错过了什么?

回答

14

为> = 2行值插入到表 -

$file = fopen($filename, "r"); 
//$sql_data = "SELECT * FROM prod_list_1 "; 

$count = 0;           // add this line 
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) 
{ 
    //print_r($emapData); 
    //exit(); 
    $count++;          // add this line 

    if($count>1){         // add this line 
     $sql = "INSERT into prod_list_1(p_bench,p_name,p_price,p_reason) values ('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]')"; 
     mysql_query($sql); 
    }            // add this line 
} 
+0

太棒了,thx。必须从XLS转换为CSV和bam。完善。 – Andy

+0

存储的数据都是符号如何获得确切的数据 –

3

你可能具有的那种CSV文件,你有问题。

用文本编辑器打开CSV文件,检查所有分隔是否完成了昏迷teken(,)而不是分号,然后再次尝试该脚本。它应该工作正常。

相关问题