【问题标题】:How to Import Excel file into mysql Database from PHP如何从 PHP 将 Excel 文件导入 mysql 数据库
【发布时间】:2014-03-24 18:53:28
【问题描述】:

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

我的 HTML 如下所示

<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代码如下

<?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 文件,但格式不正确。我想在 mysql 的 4 列中上传 4 列,但它正在上传 mysql 的 1 列中的所有 4 列。我错过了什么吗?

【问题讨论】:

    标签: php mysql excel


    【解决方案1】:

    对于 >= 第 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
    }
    

    【讨论】:

    • 太棒了,谢谢。必须从 XLS 转换为 CSV 和 bam。完美。
    • 存储的数据都是符号如何获取准确数据
    【解决方案2】:

    您的 CSV 文件类型可能有问题。

    使用文本编辑器打开 CSV 文件,检查所有分隔符是否使用逗号而不是分号完成,然后重试该脚本。它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2014-04-11
      • 2014-07-15
      • 2017-01-13
      • 2013-04-23
      • 1970-01-01
      相关资源
      最近更新 更多