2016-03-23 7 views
1

utf8でCSVの読み込みとMySQL挿入の実例を提供できる人は誰ですか?これを行う方法を理解できません(長い時間...)。 MySQLの照合はすべてutf8mb4_unicode_ci(データベース、テーブル、カラム)です。PHPのCSVがMySQLのinsert(utf8)で読み取られる

ありがとうございました!

<?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> 

答えて

1

私の代わりに

は、LOAD DATA INFILEは外部ソースから取得したファイルを読み込むために使用することができますは、LOAD DATA INFILEを使用してお勧めします。例えば、多くのプログラムがhttp://dev.mysql.com/doc/refman/5.7/en/load-data.html

0

は、ここに私達は行く、カンマ区切り値(CSV)形式でデータをエクスポートすることができます。これはutf8用のMySQLインサートで読み込まれたPHP CSVの実例です。

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

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

     $file = $_FILES['csv']['tmp_name']; 
     $handle = fopen($file,"r"); 
     mysql_query("SET NAMES utf8mb4"); 
     mysql_set_charset('utf8mb4'); 

     do { 
      if ($data){ 
       utf8_encode($data); 
       mb_strtolower($data[0], 'UTF-8'); 
       mb_strtolower($data[1], 'UTF-8'); 

       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> 
関連する問題