본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP update.php — UPDATE 쿼리 + 세션 파기 완전 정리

by 왕진 2026. 6. 19.
반응형

 

 

Web Development · update.php

update.php —
UPDATE 쿼리로 회원 정보 수정 + 세션 파기

트랜잭션으로 안전하게 수정 → 세션 정리
시작 핵심 흐름
session_start(); $id = $_SESSION['id']; // 세션에서 ID 받음 $pdo->beginTransaction(); $sql = "UPDATE member SET last_name=:last_name, first_name=:first_name, age=:age WHERE id=:id"; $stmh = $pdo->prepare($sql); $stmh->bindValue(':last_name', $_POST['last_name'], PDO::PARAM_STR); $stmh->bindValue(':first_name', $_POST['first_name'], PDO::PARAM_STR); $stmh->bindValue(':age', $_POST['age'], PDO::PARAM_INT); $stmh->bindValue(':id', $id, PDO::PARAM_INT); $stmh->execute(); $pdo->commit(); print "데이터를 ".$stmh->rowCount()."건 수정하였습니다."; // 사용 후 세션 파기 $_SESSION = array(); session_destroy();

1 UPDATE 쿼리 문법
UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
WHERE 절을 빠뜨리면 모든 행이 변경된다! 매우 위험. 반드시 WHERE 명시.

2 세션 파기 — 두 단계
$_SESSION = array(); // 세션 데이터 모두 비우기 session_destroy(); // 세션 자체 종료 (저장소 파일 삭제)

한 작업이 끝나면 세션을 정리해 다른 작업에 영향 안 주게 한다. 특히 로그아웃 시 표준 패턴.


3 트랜잭션의 이점

UPDATE 한 줄이라 짧지만, 여러 INSERT/UPDATE를 묶을 때 트랜잭션이 진가를 발휘. 도중 실패 시 rollBack으로 원상복구.


 

반응형

 

4 한 단계 발전 — POST→Redirect→GET 패턴
// 처리 후 새로고침 방지 $pdo->commit(); header("Location: list.php?updated=1"); exit;

현재 코드는 결과를 같은 페이지에 출력. 새로고침 시 또 update가 실행됨. 실무에선 PRG 패턴으로 안전하게 처리.


핵심 한 줄 요약

UPDATE … SET … WHERE특정 행 컬럼 변경
WHERE 필수없으면 모든 행이 바뀜 — 위험
트랜잭션begin → commit, 오류 시 rollBack
세션 파기$_SESSION=[] + session_destroy()
prepared statementSQL 인젝션 방지
rowCount()변경된 행 개수 확인
PRG 패턴처리 후 redirect로 새로고침 방지
반응형

댓글