본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP MYDB.php — DB 접속 코드를 함수로 분리 완전 정리

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

 

 

Web Development · MYDB.php

MYDB.php —
DB 접속 코드를 함수로 추출한 공통 모듈

db_connect() 한 번만 정의, 여러 페이지가 require_once로 가져다 사용
시작 오늘 분석할 코드
<?php function db_connect(){ $db_user = "root"; $db_pass = ""; $db_host = "localhost"; $db_name = "sampledb"; $db_type = "mysql"; $dsn = "$db_type:host=$db_host;dbname=$db_name;charset=utf8"; try{ $pdo = new PDO($dsn, $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); }catch(PDOException $Exception){ die('오류:'.$Exception->getMessage()); } return $pdo; } ?>

1 왜 함수로 분리하나?
DRY 원칙 — 매 페이지마다 DB 접속 코드를 복사·붙여넣기 하면
· 비밀번호·서버 정보가 흩어짐 → 변경 시 모두 수정
· 같은 오류 처리를 매번 반복
· 코드 길이 늘어남
한 함수로 추출하면 호출 측은 한 줄로 끝

 

반응형

 

2 사용 측에서
require_once("MYDB.php"); $pdo = db_connect(); // 한 줄로 PDO 객체 받음 // 이제 $pdo 자유롭게 사용 $stmh = $pdo->prepare("...");

3 더 발전시키기
// 환경 변수로 분리 (더 안전) $db_user = getenv('DB_USER') ?: 'root'; $db_pass = getenv('DB_PASS') ?: ''; // 또는 별도 config 파일 require 'config.php'; $pdo = new PDO(...); // 또는 클래스로 class MyDB { private static ?PDO $pdo = null; public static function connect(): PDO { if (self::$pdo === null) { self::$pdo = new PDO(...); } return self::$pdo; } }

핵심 한 줄 요약

db_connect()접속 + 옵션 설정 + 오류 처리를 한 함수로
DRY 원칙중복 코드 제거 → 한 곳만 수정
require_once함수 정의 파일 로드 (중복 방지)
return $pdoPDO 객체를 호출자에 전달
try/catch접속 실패 시 die로 즉시 종료
발전환경 변수, 별도 config, 싱글톤 클래스
실무프레임워크는 DI 컨테이너로 처리
반응형

댓글