Excel 파일의 내용을 파일 업로드를 통해서 서버로 올리고 이어서 DB테이블에 insert하는 방법
- Excel 데이터를 CSV로 저장
- 데이터베이스 생성 (있으면 skip)
- 테이블 생성 (있으면 skip) (idx, name, email 컬럼을 가진 테이)
- 업로드 Form 화면 구성
- 처리 부분 코딩
- 확인
- 짤막 팁 truncate table '테이블명'; (테이블을 최초상태로 되돌림)
엑셀 파일 형식을 CSV UTF-8로 저장
vs코드에서 저장한 csv를 열면
이런 형태로 나옴 (, 로 구분)
index.php
<?php
include "db.php";
// php에서 csv파일 불러오기
// fgetcsv() csv를 배열로 만듬
$arr = []; // 배열
$file = fopen($FILES['csv']['tmp_name'], 'r');
$conn->beginTransaction();
while (($line = fgetcsv($file)) !== FALSE) {
// array_push($arr, $line);
$sql = "INSERT INTO csvmember(cs_name, cs_email) VALUES('". $line[0] . "',
'". $line[1] ."');";
$conn->exec($sql);
}
$conn->commit();
fclose($file);
$conn = null;
?>
db.php
<?php
$servername = 'localhost';
$username = 'root';
$password = 'vhvhfh112233';
$dbname = "kingchobo";
try{
$conn = new PDO("mysql:host=$severname;daname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
csv_upload.php
<?php
include "db.php";
// php에서 csv파일 불러오기
// fgetcsv() csv를 배열로 만듬
$arr = []; // 배열
$file = fopen($FILES['csv']['tmp_name'], 'r');
$conn->beginTransaction();
while (($line = fgetcsv($file)) !== FALSE) {
// array_push($arr, $line);
$sql = "INSERT INTO csvmember(cs_name, cs_email) VALUES('". $line[0] . "',
'". $line[1] ."');";
$conn->exec($sql);
}
$conn->commit();
fclose($file);
$conn = null;
?>