【问题标题】:Import data from a csv file to MySQL using PHP使用 PHP 将数据从 csv 文件导入 MySQL
【发布时间】:2014-12-20 09:14:15
【问题描述】:

我想将 CSV 文件中的数据插入 MySQL 表。为此,我现在使用以下代码,但是当我上传文件时,我的浏览器变得没有响应。几次之后,会弹出一个显示重启 Firefox 或退出 Firefox。我只是想知道,我在给定代码中的错误在哪里?

<!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";
    }
}
?>

【问题讨论】:

标签: php html mysql firefox csv


【解决方案1】:
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 />\n";

    print "<form enctype='multipart/form-data' action='upload.php' method='post'>";

    print "File name to import:<br />\n";

    print "<input size='50' type='file' name='filename'><br />\n";

    print "<input type='submit' name='submit' value='Upload'></form>";

}

?>

</div>
</div>
</body>  

【讨论】:

【解决方案2】:

我觉得你没有在这里建立数据库连接。正确检查你的数据库连接

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接

$conn = new mysqli($servername, $username, $password,$dbname);

在此处删除评论// $tmp = explode(".",$image);

【讨论】:

  • 它工作正常>>检查此链接coyotelab.org/php/…
  • 首先建立数据库连接>>
  • //上传文件 if (isset($_POST['submit'])) { if (is_uploaded_file($_FILES['filename']['tmp_name'])) { echo "

    ” 。 “文件 ”。 $_FILES['filename']['name'] ."上传成功。" . "

    "; echo "

    显示内容:

    "; readfile($_FILES['filename']['tmp_name']); } //将上传的文件导入数据库 $handle = fopen($_FILES['filename']['tmp_name'], "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $import="INSERT into users(firstname,lastname) values('$data[0]','$data[ 1]')"; mysql_query($import) 或死(mysql_error()); }
  • fclose($handle);打印“导入完成”; //查看上传表单 }else { print "通过浏览到文件并点击上传来上传新的 csv
    \n"; print "
    "; print "要导入的文件名:
    \n";
  • print "
    \n"; print ""; } ?>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多