如何从PHP导入Excel文件到mysql数据库 [英] How to Import Excel file into mysql Database from PHP

查看:162
本文介绍了如何从PHP导入Excel文件到mysql数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们说,
i想从PHP导入/上传excel文件到mysql



我的HTML就像下面

 < form enctype =multipart / form-datamethod =postrole =form> 
< div class =form-group>
< label for =exampleInputFile>文件上传< / label>
< input type =filename =fileid =filesize =150>
< p class =help-block>仅限Excel / CSV文件导入< / p>
< / div>
< button type =submitclass =btn btn-defaultname =Importvalue =Import> Upload< / button>
< / form>

PHP代码如下

 <?php 
if(isset($ _ POST [Import]))
{
//首先我们需要与数据库建立连接
$ host ='localhost'; // 主机名。
$ db_user ='root'; //用户名
$ db_password ='';
$ db ='product_record'; // 数据库名称。
$ conn = mysql_connect($ host,$ db_user,$ db_password)或者死(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文件已成功导入';
header('Location:index.php');
}
else
echo'无效文件:请上传CSV文件';
}
?>

Excel文件如下



< img src =https://i.stack.imgur.com/e5iDu.pngalt =excel file picture>



我只想导入第二个行值放入我的表。请帮助我如何解决它或给我任何资源。我能够上传excel文件,但格式不正确。我想在mysql的4列中上传4列,但是它正在上传mysql的1列中的所有4列。我是否缺少某些东西?

解决方案

对于> =第二行值插入表格

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

$ count = 0; //添加此行
while(($ emapData = fgetcsv($ file,10000,,))!== FALSE)
{
// print_r($ emapData);
// exit();
$ count ++; //添加此行

if($ count> 1){//添加此行
$ 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);
} //添加此行
}


Lets say, i want to import/upload excel file to mysql from PHP

My HTML is like below

<form enctype="multipart/form-data" method="post" role="form">
    <div class="form-group">
        <label for="exampleInputFile">File Upload</label>
        <input type="file" name="file" id="file" size="150">
        <p class="help-block">Only Excel/CSV File Import.</p>
    </div>
    <button type="submit" class="btn btn-default" name="Import" value="Import">Upload</button>
</form>

PHP code is like below

<?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 file is like below

I want to import only the 2nd row values into my table. Please help me how can i solve it or give me any resource. I was able to upload the excel file but it is not correctly formatted. i want to upload 4 column in mysql's 4 column but it is uploading all 4 column in mysql's 1 column. am i missing something ?

解决方案

For >= 2nd row values insert into table-

$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
}

这篇关于如何从PHP导入Excel文件到mysql数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆