PHP 21강. PDO(MySQL 연결)
1. PDO란?
PDO(PHP Data Objects)는 PHP와 MySQL 데이터베이스를 연결하는 표준 방식입니다.
PDO를 사용하면
MySQL 연결
데이터 조회
데이터 저장
데이터 수정
데이터 삭제
를 안전하게 처리할 수 있습니다.
2. PDO 구조
브라우저
↓
PHP
↓
PDO
↓
MySQL
PDO는 PHP와 MySQL 사이에서 데이터를 주고받는 역할을 합니다.
3. DB 연결 정보
먼저 데이터베이스 정보를 준비합니다.
$host = "localhost";
$dbname = "dongbusan_cc";
$user = "root";
$password = "";
실제 카페24에서는
localhost
DB명
DB 아이디
DB 비밀번호
를 사용합니다.
4. PDO 연결
<?php
try{
$pdo = new PDO(
"mysql:host=localhost;dbname=dongbusan_cc;charset=utf8",
"root",
""
);
echo "DB 연결 성공";
}catch(PDOException $e){
echo "DB 연결 실패";
}
5. db.php 만들기
실무에서는 DB 연결을 하나의 파일로 관리합니다.
config/db.php
<?php
$pdo = new PDO(
"mysql:host=localhost;dbname=dongbusan_cc;charset=utf8",
"root",
""
);
사용
require_once "config/db.php";
6. SQL 실행
$sql = "SELECT * FROM reservation";
$stmt = $pdo->query($sql);
SQL을 실행하면 결과를 $stmt가 가지고 있습니다.
7. 한 건 조회
$row = $stmt->fetch();
print_r($row);
첫 번째 데이터만 가져옵니다.
8. 여러 건 조회
$list = $stmt->fetchAll();
print_r($list);
모든 데이터를 배열로 가져옵니다.
9. JSON 출력
header("Content-Type: application/json");
echo json_encode($list);
React에서는 이 JSON을 받아 화면에 출력합니다.
10. prepare()
실무에서 가장 많이 사용하는 방식입니다.
$sql = "
SELECT *
FROM member
WHERE userid=?
";
$stmt = $pdo->prepare($sql);
11. execute()
$stmt->execute([
"cursaman"
]);
SQL에 값을 전달합니다.
12. 동부산CC 예제
예약 조회
$sql = "
SELECT *
FROM reservation
";
$stmt =
$pdo->query($sql);
$list =
$stmt->fetchAll();
13. React 연결
React
↓
Axios
↓
reservation.php
↓
PDO
↓
MySQL
↓
JSON
↓
React
14. MySQL 테이블
reservation
id
member
course
play_date
player
15. PDO 장점
✔ SQL Injection 예방
✔ 예외 처리 가능
✔ 다양한 DB 지원
✔ 보안성이 높음
16. 실무 폴더
config
└── db.php
api
└── reservation.php
admin
└── reservation.php
모든 파일이 db.php를 공통으로 사용합니다.
17. React와 비교
React
axios.get(
"/api/reservation.php"
);
PHP
$list =
$stmt->fetchAll();
echo json_encode($list);
18. 실습 과제
다음을 구현해 보세요.
MySQL 연결
reservation 테이블 조회
fetchAll()
JSON 출력
19. 실무 팁
✔ DB 연결은 하나의 파일에서 관리
✔ prepare() 사용
✔ SQL을 문자열로 분리
✔ JSON으로 반환
20. 정리
PDO는 PHP와 MySQL을 연결하는 표준 데이터베이스 인터페이스입니다.
query()는 단순 조회에 사용할 수 있지만, 사용자 입력이 포함되는 경우에는 prepare()와 execute()를 사용하여 SQL Injection을 방지하는 것이 좋습니다.
조회 결과는 fetch() 또는 fetchAll()로 가져오며, React와 연동할 때는 json_encode()를 사용하여 JSON 형태로 반환합니다.
동부산CC 프로젝트에서는 회원, 예약, 공지사항, 갤러리 등 모든 데이터 처리를 PDO를 기반으로 구현하게 됩니다.
1. PDO란?
PDO(PHP Data Objects)는 PHP와 MySQL 데이터베이스를 연결하는 표준 방식입니다.
PDO를 사용하면
MySQL 연결
데이터 조회
데이터 저장
데이터 수정
데이터 삭제
를 안전하게 처리할 수 있습니다.
2. PDO 구조
브라우저
↓
PHP
↓
PDO
↓
MySQL
PDO는 PHP와 MySQL 사이에서 데이터를 주고받는 역할을 합니다.
3. DB 연결 정보
먼저 데이터베이스 정보를 준비합니다.
$host = "localhost";
$dbname = "dongbusan_cc";
$user = "root";
$password = "";
실제 카페24에서는
localhost
DB명
DB 아이디
DB 비밀번호
를 사용합니다.
4. PDO 연결
<?php
try{
$pdo = new PDO(
"mysql:host=localhost;dbname=dongbusan_cc;charset=utf8",
"root",
""
);
echo "DB 연결 성공";
}catch(PDOException $e){
echo "DB 연결 실패";
}
5. db.php 만들기
실무에서는 DB 연결을 하나의 파일로 관리합니다.
config/db.php
<?php
$pdo = new PDO(
"mysql:host=localhost;dbname=dongbusan_cc;charset=utf8",
"root",
""
);
사용
require_once "config/db.php";
6. SQL 실행
$sql = "SELECT * FROM reservation";
$stmt = $pdo->query($sql);
SQL을 실행하면 결과를 $stmt가 가지고 있습니다.
7. 한 건 조회
$row = $stmt->fetch();
print_r($row);
첫 번째 데이터만 가져옵니다.
8. 여러 건 조회
$list = $stmt->fetchAll();
print_r($list);
모든 데이터를 배열로 가져옵니다.
9. JSON 출력
header("Content-Type: application/json");
echo json_encode($list);
React에서는 이 JSON을 받아 화면에 출력합니다.
10. prepare()
실무에서 가장 많이 사용하는 방식입니다.
$sql = "
SELECT *
FROM member
WHERE userid=?
";
$stmt = $pdo->prepare($sql);
11. execute()
$stmt->execute([
"cursaman"
]);
SQL에 값을 전달합니다.
12. 동부산CC 예제
예약 조회
$sql = "
SELECT *
FROM reservation
";
$stmt =
$pdo->query($sql);
$list =
$stmt->fetchAll();
13. React 연결
React
↓
Axios
↓
reservation.php
↓
PDO
↓
MySQL
↓
JSON
↓
React
14. MySQL 테이블
reservation
id
member
course
play_date
player
15. PDO 장점
✔ SQL Injection 예방
✔ 예외 처리 가능
✔ 다양한 DB 지원
✔ 보안성이 높음
16. 실무 폴더
config
└── db.php
api
└── reservation.php
admin
└── reservation.php
모든 파일이 db.php를 공통으로 사용합니다.
17. React와 비교
React
axios.get(
"/api/reservation.php"
);
PHP
$list =
$stmt->fetchAll();
echo json_encode($list);
18. 실습 과제
다음을 구현해 보세요.
MySQL 연결
reservation 테이블 조회
fetchAll()
JSON 출력
19. 실무 팁
✔ DB 연결은 하나의 파일에서 관리
✔ prepare() 사용
✔ SQL을 문자열로 분리
✔ JSON으로 반환
20. 정리
PDO는 PHP와 MySQL을 연결하는 표준 데이터베이스 인터페이스입니다.
query()는 단순 조회에 사용할 수 있지만, 사용자 입력이 포함되는 경우에는 prepare()와 execute()를 사용하여 SQL Injection을 방지하는 것이 좋습니다.
조회 결과는 fetch() 또는 fetchAll()로 가져오며, React와 연동할 때는 json_encode()를 사용하여 JSON 형태로 반환합니다.
동부산CC 프로젝트에서는 회원, 예약, 공지사항, 갤러리 등 모든 데이터 처리를 PDO를 기반으로 구현하게 됩니다.
#PHP 21강. PDO(MySQL 연결)