使用MySQL插入读取PHP CSV(utf8)

时间:2016-03-23 13:49:53

标签: php mysql csv

任何人都可以提供CSV读取和MySQL插入的工作示例 - 全部使用utf8?无法弄清楚如何做到这一点(长时间......)。 MySQL整理所有utf8mb4_unicode_ci(数据库,表,列)。

感谢您的帮助!

<?php
header('Content-Type: text/html; charset=UTF-8');
mysql_connect("localhost","root","");
mysql_query("SET NAMES utf8");
mysql_select_db("test");

if (!empty($_FILES['csv']['size']) && $_FILES['csv']['size'] > 0){

    $file = $_FILES['csv']['tmp_name'];
    utf8_encode(fgets($file));
    $handle = fopen($file,"r");

    do {
        if ($data){
            $data = array_map("utf8_encode", $data);
            mysql_query("INSERT INTO mytable (id,text) VALUES 
            (
                '".addslashes($data[0])."','".addslashes($data[1])."'
            )");        
        }
    }
    while ($data = fgetcsv($handle,1000,",","'"));
    header('Location: index.php'); die;
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<form action="index.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> 
<input name="csv" type="file" id="csv" accept-charset="utf-8"/> 
<button type=submit>UPLOAD</button>
</form>     
</body>
</html>

2 个答案:

答案 0 :(得分:1)

我建议使用LOAD DATA INFILE

  

LOAD DATA INFILE可用于读取从外部源获取的文件。例如,许多程序可以以逗号分隔值(CSV)格式导出数据,   http://dev.mysql.com/doc/refman/5.7/en/load-data.html

答案 1 :(得分:0)

我们走了。这是使用MySQL插入utf8的PHP CSV读取的工作示例。

df1.except(df2).union(df2.except(df1))