duanliu8998 2014-12-20 09:14
浏览 63

使用PHP将数据从csv文件导入MySQL

I want to insert data from a CSV file to a MySQL table. For that right now I use the following code, but when I upload the file my browser becomes not-responding. And after few times a pop-up displays that says to restart Firefox or quit Firefox. I just want to know, where is my fault in the given code?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="" content="">
</head>
<body>
    <form method="POST" enctype="multipart/form-data">
        <input type="file" name="imageup" /><input type="submit" name="submit" value="Upload"/>
    </form>
</body>
</html>
<?php
    function generateRandomString($length = 10){
            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $randomString = '';
            for($i = 0; $i < $length; $i++){
                $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }
        return $randomString;
    }

if(isset($_POST['submit'])){
    $t= generateRandomString();
    $path = 'csv/';
    $image = $_FILES["imageup"]["name"];
//  $tmp = explode(".",$image);
    $type = end($tmp);
    $file = array("csv");
    $csv_file = $path.$image;

    if(in_array(strtolower($type), $file)){
        if(move_uploaded_file($_FILES["imageup"]["tmp_name"], $path.$image)){
            readfile($_FILES['imageup']['tmp_name']);

            $open = fopen($_FILES['imageup']['tmp_name'], 'r');
            $theData = fgets($open);
            $i = 0;

            while(!feof($open)){
                $csv_data[] = fgets($open, 1024);
                $csv_array = explode(",", $csv_data[$i]);
                $insert_csv = array();
                $insert_csv['ID'] = $csv_array[0];
                $insert_csv['firstname'] = $csv_array[1];
                $insert_csv['lastname'] = $csv_array[2];
                $insert_csv['email'] = $csv_array[3];

                $isql = "INSERT INTO `myguests`(`id`, `firstname`, `lastname`, `email`) VALUES ('','".$insert_csv['firstname']."','".$insert_csv['lastname']."','".$insert_csv['email']."')";
                $run = mysqli_query($con, $isql);
                $i++;               
            }
            fclose($open);

            echo "File upload successfully";
            mysqli_close($con);
        }
    }
    else{
        echo "Not valid file formate";
    }
}
?>
  • 写回答

2条回答 默认 最新

  • douweida2669 2014-12-20 09:25
    关注
    Please try this I have provide some php code for import data csv format 
    <body>
    <div id="container">
    <div id="form">
    
    <?php
    $deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records
    mysql_query($deleterecords);
    
    //Upload File
    if (isset($_POST['submit'])) {
    
        if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
            echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded 
     successfully." . "</h1>";
            echo "<h2>Displaying contents:</h2>";
            readfile($_FILES['filename']['tmp_name']);
        }
    
        //Import uploaded file to Database
        $handle = fopen($_FILES['filename']['tmp_name'], "r");
    
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $import="INSERT into importing(text,number)values('$data[0]','$data[1]')";
    
            mysql_query($import) or die(mysql_error());
        }
    
        fclose($handle);
    
        print "Import done";
    
    //view upload form
    } else {
    
        print "Upload new csv by browsing to file and clicking on Upload<br />
    ";
    
        print "<form enctype='multipart/form-data' action='upload.php' method='post'>";
    
        print "File name to import:<br />
    ";
    
        print "<input size='50' type='file' name='filename'><br />
    ";
    
        print "<input type='submit' name='submit' value='Upload'></form>";
    
    }
    
    ?>
    
    </div>
    </div>
    </body>  
    
    评论

报告相同问题?

悬赏问题

  • ¥20 5037端口被adb自己占了
  • ¥15 Error in check.length("fill") : 'gpar'成分'fill'的长度不能为零
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误