상세 컨텐츠

본문 제목

Excel 내용 DB에 저장

php

by 개발일지작성 2024. 3. 25. 22:44

본문

728x90

Excel 파일의 내용을 파일 업로드를 통해서 서버로 올리고 이어서 DB테이블에 insert하는 방법

  1. Excel 데이터를 CSV로 저장
  2. 데이터베이스 생성 (있으면 skip)
  3. 테이블 생성 (있으면 skip) (idx, name, email 컬럼을 가진 테이) 
  4. 업로드 Form 화면 구성
  5. 처리 부분 코딩
  6. 확인
  7. 짤막 팁 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;
?>

'php' 카테고리의 다른 글

PHP short_open_tag  (0) 2024.03.26
PHP MySQL Prepared Statements (PDO) 인젝션 공격 방어  (1) 2024.03.25
쿠키 생성  (1) 2024.03.22
간단한 이미지 갤러리 (디자인, DB, 페이징, 썸네일 x)  (1) 2024.03.22
PHP $_GET, $_POST  (0) 2024.03.21

관련글 더보기