PHP로 게시판 CRUD 기능 만들기: 데이터 생성, 읽기, 수정, 삭제
웹 개발에서 게시판을 만들 때 가장 기본적이고 중요한 기능은 바로 CRUD 기능입니다. CRUD는 Create(생성), Read(읽기), Update(수정), Delete(삭제)의 약자로, 데이터베이스에서 데이터를 관리하는 기본적인 작업을 의미합니다. 이번 글에서는 PHP와 MySQL을 사용하여 게시판에서 데이터를 생성하고 읽고 수정하고 삭제하는 방법을 단계별로 설명합니다. 이를 통해 게시판 시스템을 더욱 완전하게 만들 수 있습니다.
1. CRUD 기능의 개념과 중요성
CRUD는 데이터베이스를 활용한 웹 애플리케이션에서 가장 핵심적인 개념입니다. 게시판을 예로 들어, CRUD 기능은 다음과 같이 동작합니다:
- Create: 새로운 게시글을 작성하고 데이터베이스에 저장
- Read: 저장된 게시글을 데이터베이스에서 조회하여 사용자에게 표시
- Update: 기존 게시글의 내용을 수정하고 변경된 정보를 데이터베이스에 반영
- Delete: 불필요한 게시글을 데이터베이스에서 삭제
게시판을 만들 때 이 4가지 기능을 모두 구현해야만 게시글을 관리할 수 있으며, 사용자에게 실용적인 기능을 제공할 수 있습니다. 이제 각 기능을 PHP와 MySQL을 사용하여 구현하는 방법을 알아보겠습니다.
2. 게시글 생성(Create) 기능 구현
게시글을 작성하는 기능은 게시판에서 가장 기본적인 부분입니다. 사용자가 게시글의 제목과 내용을 입력하고 저장할 수 있도록 PHP 폼을 작성하고, MySQL 데이터베이스에 데이터를 저장하는 방법을 설명합니다.
게시글 작성 폼
먼저, 사용자가 게시글을 작성할 수 있는 HTML 폼을 작성합니다. 사용자는 제목과 내용을 입력한 후 제출 버튼을 눌러야 합니다:
PHP 코드 - 게시글 데이터 저장
폼에서 받은 데이터를 MySQL 데이터베이스에 저장하는 PHP 코드를 작성합니다. 사용자가 입력한 제목과 내용을 데이터베이스에 삽입합니다:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 폼에서 받은 데이터
$title = $_POST['title'];
$content = $_POST['content'];
// SQL 쿼리
$sql = "INSERT INTO posts (title, content) VALUES ('$title', '$content')";
// 쿼리 실행
if ($conn->query($sql) === TRUE) {
echo "게시글이 성공적으로 작성되었습니다!";
} else {
echo "오류: " . $sql . "
" . $conn->error;
}
// 연결 종료
$conn->close();
?>
3. 게시글 읽기(Read) 기능 구현
게시글을 읽는 기능은 사용자가 게시판에서 다양한 글을 볼 수 있도록 하는 중요한 부분입니다. 데이터를 데이터베이스에서 읽고 사용자에게 표시합니다. 아래는 게시글 목록을 출력하는 방법입니다.
PHP 코드 - 게시글 목록 조회
게시글 목록을 MySQL에서 읽어와 사용자에게 표시하는 PHP 코드를 작성합니다:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL 쿼리
$sql = "SELECT id, title, created_at FROM posts ORDER BY created_at DESC";
$result = $conn->query($sql);
// 게시글 목록 출력
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "" . $row['title'] . "
";
echo "" . $row['created_at'] . "
";
}
} else {
echo "게시글이 없습니다.";
}
// 연결 종료
$conn->close();
?>
게시글 상세 보기
사용자가 게시글을 클릭하면 해당 게시글의 상세 내용을 볼 수 있는 페이지로 이동해야 합니다. 게시글 상세보기 페이지에서는 게시글의 제목, 내용, 작성일 등을 출력합니다. 이를 위해 view_post.php 파일을 작성합니다:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 게시글 ID 가져오기
$post_id = $_GET['id'];
// SQL 쿼리
$sql = "SELECT title, content, created_at FROM posts WHERE id = $post_id";
$result = $conn->query($sql);
// 게시글 상세보기 출력
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "" . $row['title'] . "
";
echo "" . $row['content'] . "
";
echo "작성일: " . $row['created_at'] . "
";
} else {
echo "게시글을 찾을 수 없습니다.";
}
// 연결 종료
$conn->close();
?>
4. 게시글 수정(Update) 기능 구현
게시글을 수정하는 기능은 사용자가 작성한 게시글의 내용을 변경할 수 있도록 합니다. 수정 기능은 기존 게시글을 불러와서 수정하고, 변경된 내용을 데이터베이스에 반영하는 과정입니다.
게시글 수정 폼
게시글 수정 폼은 기존 게시글의 제목과 내용을 불러와 수정할 수 있도록 합니다:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 게시글 ID 가져오기
$post_id = $_GET['id'];
// SQL 쿼리
$sql = "SELECT title, content FROM posts WHERE id = $post_id";
$result = $conn->query($sql);
// 게시글 수정 폼 출력
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
echo "";
} else {
echo "게시글을 찾을 수 없습니다.";
}
// 연결 종료
$conn->close();
?>
5. 게시글 삭제(Delete) 기능 구현
게시글 삭제는 사용자가 더 이상 필요 없는 게시글을 데이터베이스에서 제거할 수 있는 기능입니다. 삭제 기능은 게시글을 삭제하기 위한 확인 절차를 거쳐야 합니다.
게시글 삭제
게시글을 삭제하는 PHP 코드는 다음과 같습니다:
connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 게시글 ID 가져오기
$post_id = $_GET['id'];
// SQL 쿼리
$sql = "DELETE FROM posts WHERE id = $post_id";
// 쿼리 실행
if ($conn->query($sql) === TRUE) {
echo "게시글이 삭제되었습니다.";
} else {
echo "오류: " . $sql . "
" . $conn->error;
}
// 연결 종료
$conn->close();
?>
6. 마무리
이번 글에서는 PHP와 MySQL을 사용하여 게시판의 CRUD 기능을 구현하는 방법을 설명했습니다. 게시글 생성, 읽기, 수정, 삭제 기능을 구현함으로써 게시판 시스템을 완성할 수 있습니다. 각 기능을 하나씩 구현하며, PHP와 MySQL의 기본적인 연동 방법을 익히게 되었습니다. 이러한 기능들을 바탕으로, 더 다양한 기능을 추가하여 게시판을 더욱 발전시킬 수 있습니다.
게시판 시스템은 기본적인 CRUD 기능을 바탕으로 확장 가능합니다. 사용자의 댓글 작성, 좋아요 기능, 검색 기능 등을 추가하여 사용자 경험을 향상시킬 수 있습니다. PHP와 MySQL을 이용해 게시판을 개발하는 과정에서 얻은 경험은 다른 웹 애플리케이션 개발에도 큰 도움이 될 것입니다.
'PHP로 웹사이트 만들기' 카테고리의 다른 글
7. PHP와 MySQL로 게시판 만들기: 게시글 저장 및 조회 기능 구현하기 (0) | 2025.01.28 |
---|---|
6. PHP와 MySQL로 게시판 만들기: 게시판 디자인 (0) | 2025.01.27 |
4. PHP와 MySQL로 게시판 만들기: PHP와 MySQL로 데이터베이스 설계하기 (0) | 2025.01.25 |
3. PHP와 MySQL로 게시판 만들기: MySQL 설치 및 설정 (0) | 2025.01.24 |
2. PHP와 MySQL로 게시판 만들기: PHP 설치 및 설정 (1) | 2025.01.23 |