php MySQL でCSVデータインポートする

登録日:2019.05.29

更新日:2019.11.12

phpとMySQL でCSVデータのインポート、流し込みをしてみる。

 

 

 

 

 

 

 

フォーム側
<form action="uu.php" enctype="multipart/form-data" method="post">ファイル:<input name="upfile" type="file" />

<input type="submit" value="upload" /></form>

 

 

 

 

 

uu.phpの方(サーバーDB側)


<?php
ini_set( 'display_errors', 1);
// データベース
try {
$pdo = new PDO('mysql:host=ホストサーバー;dbname=データベース;charset=utf8','ユーザー','パスワード',
array(PDO::ATTR_EMULATE_PREPARES => false));
} catch (PDOException $e) {
exit('データベース接続失敗。'.$e->getMessage());
}



// File Upload
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
if (move_uploaded_file($_FILES["upfile"]["tmp_name"],"csv/" . $_FILES["upfile"]["name"])) {
chmod("csv/" . $_FILES["upfile"]["name"], 0777);
$upload ="./csv/".$_FILES["upfile"]["name"];
$res = $upload;
if ( $res ) {
$fp = fopen($upload,"r");






while( ! feof($fp) ) {
$csv = fgets($fp);
$csv = trim($csv,'"');
$csv = mb_convert_encoding($csv,"UTF-8", "utf-8");

$csv = str_replace('"','', $csv);
$csv_array = explode(",",$csv);



$stmt = $pdo -> prepare("INSERT INTO tb_bank1 (b_rem1,b_rem2,b_rem3,b_rem4,b_rem5)
VALUES (:b_rem1,:b_rem2,:b_rem3,:b_rem4,:b_rem5)");
//$stmt->bindParam(':b_id', '', PDO::PARAM_STR);
$stmt->bindParam(':b_rem1', $csv_array[0], PDO::PARAM_STR);
$stmt->bindParam(':b_rem2', $csv_array[1], PDO::PARAM_STR);
$stmt->bindParam(':b_rem3', $csv_array[2], PDO::PARAM_STR);
$stmt->bindParam(':b_rem4', $csv_array[3], PDO::PARAM_STR);
$stmt->bindParam(':b_rem5', $csv_array[4], PDO::PARAM_STR);
$stmt->execute();

}

echo $_FILES["upfile"]["name"] ."をアップロードしました。".$upload;
if (file_exists($upload)) {
unlink("$upload");
}
}
} else {
echo"ファイルをアップロードできません。";
}
} else {
echo"ファイルが選択されていません。";
}
?>

 

 

 

参考:php MySQL CSVアップロード

phpとMySQL でCSVデータのインポートをしてみる。

書いた人:おりゃー

  • ○○○Works. LtdLINE
  • ○○○Works. LtdTwitter
  • ○○○Works. LtdFacebook

php MySQL でCSVデータインポートするへのコメント

2019-08-13 11:56:51

888さん

2000件以上のCSVあっぷしたらINSERTが止まらなくなった

評価:わるい