반응형
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로 새로고침 방지
반응형
'php' 카테고리의 다른 글
| CSS rotate3d — rotateX·Y·Z와 임의 축 3D 회전 (0) | 2026.06.19 |
|---|---|
| HTML5 video — 전체화면 배경 동영상 완전 정리 (0) | 2026.06.19 |
| PHP updateform — 세션 ID 저장 + 기존 값 채운 수정 폼 완전 정리 (0) | 2026.06.19 |
| PHP MYDB.php — DB 접속 코드를 함수로 분리 완전 정리 (0) | 2026.06.19 |
| PHP search + list — LIKE 검색 + fetch 표 출력 완전 정리 (0) | 2026.06.19 |
왕진 블로그

댓글