繁体   English   中英

如何使用PHP将Excel数据导入MySQL

[英]How to Import Excel Data To MySQL Using PHP

谁能告诉我:

我必须上传excel文件并将其所有数据放入数据库中,但条件是,如果数据库中已存在任何记录,则必须启动更新查询。 否则触发插入查询以获取新记录。

我正在比较数据库中的Roll No和excel中的RollNo。 它可以与现有数据配合使用,即可以更新所有现有数据。 但这不是插入新数据。 请检查:else if($ num_rows> 0)中的代码

请帮我。

下面是代码:

if($_FILES['excelFile']['name']!="")
{
    $fileName=uploadFile($_FILES['excelFile'],array(".xls",".xlsx"),"excel_file");
    $data = new Spreadsheet_Excel_Reader();
    $data->read('excel_file/'.$fileName);
    $ans=mysql_query("SELECT * FROM StudentData");
    $num_rows = mysql_num_rows($ans);
    for($i=1;$i<=$data->sheets[0]['numRows'];$i++)
    {
        $rollno=$data->sheets[0]['cells'][$i][1];
        $firstname=$data->sheets[0]['cells'][$i][2];
        $lastname=$data->sheets[0]['cells'][$i][3];
        $mobile=$data->sheets[0]['cells'][$i][4];
        $city=$data->sheets[0]['cells'][$i][5];

        if($num_rows<=0)
        {
            echo('Inserting : '.$rollno);
            $query="INSERT INTO StudentData(RollNo,FirstName,LastName,MobileNo,City)VALUES('".$rollno."','".$firstname."','".$lastname."','".$mobile."','".$city."')";
            mysql_query($query);
        }
        else if($num_rows>0)
        {
            while($rows=mysql_fetch_array($ans))
            {
                if($rollno!=$rows['RollNo'])
                {
                    echo('<p style="color:green">Inserting : '.$rollno.'</p>');
                    $query="INSERT INTO StudentData(RollNo,FirstName,LastName,MobileNo,City)VALUES('".$rollno."','".$firstname."','".$lastname."','".$mobile."','".$city."')";
                    mysql_query($query);
                    mysql_error();
                    break;
                }
                else
                {
                    echo('<p style="color:red">Updating Roll:'.$rollno.'and DBR:'.$rows['RollNo'].'</p>');
                    $query="UPDATE StudentData SET FirstName='".$firstname."',LastName='".$lastname."',MobileNo='".$mobile."',City='".$city."' WHERE RollNo='".$rollno."'";
                    mysql_query($query);
                    break;
                }

            }   
        }
    }

} 

我尝试将所有现有的胶卷放在一个阵列中!

所以我从现有的rollno制作了一个数组

while($rows=mysql_fetch_array($ans))
{
 $existing_rollno[]=$rows['RollNo'];
}

然后我使用了这个php函数:-

if (in_array($rollno, $existing_rollno))

然后按我的意愿工作。

当num_ros <= 0时,insert语句有效吗? 如果没有,则您的插入语句不起作用。 另外,我不确定,但您是否不需要在VALUES之前留一个空格。

好。 因此,您的插入语句没有问题。 现在检查一下。 如果($ rollno!= $ rows ['RollNo'])语句之后,您会得到回显。 如果不是,则您的if语句错误。 试试!==代替!=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM