phpMySQLでCSVデータインポート

投稿者: | 2020年2月5日

hpとMySQL でCSVデータのインポート する

//フォーム側 index.html
<form action="up.php" enctype="multipart/form-data" method="post">ファイル:<input name="upfile" type="file" />
<input type="submit" value="upload" />
</form>
//アップロードup.php
<?php
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);
//CSVディレクトリを作っておく
$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"ファイルが選択されていません。";
}
?>  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA