php - 用php将excel(xlsx)导入mysql数据库

标签 php mysql

我无法上传 Excel 文件并将数据导入数据库。我总是收到错误代码:

Notice: Undefined index: file in C:\xampp\htdocs\Shamcey\importProspect.php on line 27

Notice: Undefined index: file in C:\xampp\htdocs\Shamcey\importProspect.php on line 28 Invalid File:Please Upload CSV File

我尝试了很多方法来重命名代码中的文件标签,但也失败了。我尝试在谷歌上研究解决方案,但没有一个解决方案有效。请帮我。我知道强烈建议使用 PHPExcel,但我真的不知道如何开始使用 PHPExcel,因为我对 php 还很陌生。

这是我的 php 代码:

  function doprospects(){

    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= 'csci311'; // 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 prospects(sno,name,position,positiontype,organization,industry,address,teloff,telfax,telhp,email,consultant,qualification,certification,member,membertype,remarks,state,sourceofclient) values ('$emapData[0]','$emapData[1]',,'$emapData[2]',,'$emapData[3]',,'$emapData[4]',,'$emapData[5]',,'$emapData[6]',,'$emapData[7]',,'$emapData[8]',,'$emapData[9]',,'$emapData[10]',,'$emapData[11]',,'$emapData[12]',,'$emapData[13]',,'$emapData[14]',,'$emapData[15]',,'$emapData[16]',,'$emapData[17]','$emapData[18]')";
                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 文件的样子

Prospect.xlsx

是否可以只输入数据而不将表头插入数据库?

最佳答案

您需要使用以下方法获取索引 $maxCol= getHightstColumn() 并获取 $maxRow= HighestRow() 那么
我宁愿在 for 循环中使用 rangeToArray 将文件存储在数组中

for($row=1; $row<=maxRow;$row++) 
$rowData =$objSheet->rangeToArray('A' . $row . ':' . $maxCol . $row,  NULL,TRUE, FALSE)[0];

//从这里您可以使用第一行的索引,您可以从第 2 行开始。

最佳

关于php - 用php将excel(xlsx)导入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24128241/

相关文章:

PHP/MySQL 更新复选框选择到数据库 2

mysql - 如何在sql中检查具有多个条件的列?

c# - 远程连接MySQL数据库但将数据保存在本地MySQL数据库C#

php - HTTP 请求失败 所需长度

javascript - 在不使用 JavaScript 的情况下呈现网页之前,如何对用户进行身份验证并提供自定义页面?

php - Composer 供应商/文件夹 FTP 上传

php - MySQL PHP 动态数据选择/写入

mysql - 在MySQL中删除 'older'行的正确方法

php - sql查询不适用于三个表连接

php - memcached可以存储复杂的对象吗?