2016-11-29 8 views
-1

私は、MySQLiオブジェクト指向を使用してCSVファイルをMySqlにアップロードするための簡単なフォームを作成しようとしています。 DBへの接続はうまく動作しますが、何らかの理由で私がまだ理解していないのに、CSVファイルからDBにデータを挿入しません。MySqlにCSVファイルをアップロード

$servername = "localhost"; 
$username = "user_name"; 
$password = "password"; 
$dbname = "db_name"; 

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

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

if(isset($_POST["submit"])) { 
    if($_FILES['file']['name']) { 
     $filename = explode(".", $_FILES['file']['name']); 
     if ($filename[1] == 'csv') { 

      $handle = fopen($_FILES['file']['tmp_name'], "r"); 
      while($data = fgetcsv($handle)) { 
       $user_id = mysqli_real_escape_string($conn, $data[1]); 
       $name = mysqli_real_escape_string($conn, $data[2]); 
       $last_mod = mysqli_real_escape_string($conn, $data[3]); 

       $sql="INSERT into user (user_id, name, last_mod) VALUES ('$user_id', '$name', '$last_mod')"; 
       if (!mysqli_query($con,$sql)) { 
       die('Error: ' . mysqli_error($con)); 
       } 
       echo "1 record added"; 
      } 

      $conn->close(); 
     } 
    } 

} 

<form action="index.php" method="POST" enctype="multipart/form-data" name="beer"> 
<div class="form-group"> 
<label for="file">Select your file:</label> 
<input name="file" type="file"> 
</div> 
<div class="checkbox"> 
<label><input type="checkbox">I agree!</label> 
</div> 
<button type="submit" class="btn btn-default">Upload</button> 
</form> 
+0

私は何か不足しているかもしれませんが、どこで '$ row'を設定していますか? – andrewsi

+0

@andrewsi ...古いバージョンでしたが残念ですが、私はそれを "データ"に変更しました – user3767773

+1

LOAD DATA INFILEの何が問題なのですか? – e4c5

答えて

-1
  1. ファイルの種類を確認してください。それは.csvでなければなりません。
  2. csvファイルを確認して、列名を書き込んだ行を削除してください。
関連する問題