백엔드 개발 일지에 오신 것을 환영합니다! 오늘은 PHP와 MySQL을 사용하여 간단한 블로그 시스템을 구축하는 방법을 단계별로 알아보겠습니다. 이 튜토리얼을 통해 기본적인 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하고 구현할 수 있습니다.
1. 개발 환경 설정
우선, PHP와 MySQL을 사용할 수 있는 개발 환경을 설정해야 합니다. 로컬 서버 환경을 구축하기 위해 XAMPP 또는 MAMP를 설치하세요. 이 도구들은 Apache 서버와 MySQL 데이터베이스, PHP를 통합적으로 제공합니다.
설치가 완료되면, 웹 브라우저에서 http://localhost/phpmyadmin에 접속하여 데이터베이스를 생성합니다. 데이터베이스 이름은 blog로 설정하겠습니다.
2. 데이터베이스 테이블 생성
블로그 시스템에서는 포스트를 저장할 테이블이 필요합니다. 아래 SQL 쿼리를 사용하여 posts 테이블을 생성합니다.
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
이 쿼리는 포스트의 제목, 내용, 생성 시간을 저장할 수 있는 테이블을 만듭니다.
3. PHP 파일 구조 설정
프로젝트 구조를 아래와 같이 설정합니다.
/blog
├── index.php
├── create.php
├── edit.php
├── delete.php
└── db.php
이제 각 파일의 기능을 살펴보겠습니다.
4. 데이터베이스 연결 (db.php)
데이터베이스와 연결하기 위한 db.php 파일을 작성합니다.
<?php
$host = 'localhost';
$username = 'root'; // 사용자 이름
$password = ''; // 비밀번호
$dbname = 'blog'; // 데이터베이스 이름
$conn = new mysqli($host, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
5. 블로그 포스트 목록 조회 (index.php)
index.php 파일에서는 블로그 포스트 목록을 조회하고 화면에 출력합니다.
<?php
include 'db.php';
$sql = "SELECT * FROM posts ORDER BY created_at DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>블로그 목록</title>
</head>
<body>
<h1>블로그 포스트</h1>
<a href="create.php">새 포스트 작성</a>
<ul>
<?php while($row = $result->fetch_assoc()) : ?>
<li>
<h2><?php echo $row['title']; ?></h2>
<p><?php echo $row['content']; ?></p>
<a href="edit.php?id=<?php echo $row['id']; ?>">수정</a>
<a href="delete.php?id=<?php echo $row['id']; ?>">삭제</a>
</li>
<?php endwhile; ?>
</ul>
</body>
</html>
6. 블로그 포스트 작성 (create.php)
사용자가 새로운 포스트를 작성할 수 있는 create.php 파일입니다.
<?php
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$title = $_POST['title'];
$content = $_POST['content'];
$sql = "INSERT INTO posts (title, content) VALUES ('$title', '$content')";
$conn->query($sql);
header('Location: index.php');
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>포스트 작성</title>
</head>
<body>
<h1>새 포스트 작성</h1>
<form method="POST">
<input type="text" name="title" placeholder="제목" required>
<textarea name="content" placeholder="내용" required></textarea>
<button type="submit">작성</button>
</form>
</body>
</html>
7. 블로그 포스트 수정 (edit.php)
edit.php 파일을 통해 사용자가 기존 포스트를 수정할 수 있습니다.
<?php
include 'db.php';
$id = $_GET['id'];
$sql = "SELECT * FROM posts WHERE id=$id";
$result = $conn->query($sql);
$post = $result->fetch_assoc();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$title = $_POST['title'];
$content = $_POST['content'];
$sql = "UPDATE posts SET title='$title', content='$content' WHERE id=$id";
$conn->query($sql);
header('Location: index.php');
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>포스트 수정</title>
</head>
<body>
<h1>포스트 수정</h1>
<form method="POST">
<input type="text" name="title" value="<?php echo $post['title']; ?>" required>
<textarea name="content" required><?php echo $post['content']; ?></textarea>
<button type="submit">수정</button>
</form>
</body>
</html>
8. 블로그 포스트 삭제 (delete.php)
마지막으로, 포스트를 삭제하는 delete.php 파일입니다.
<?php
include 'db.php';
$id = $_GET['id'];
$sql = "DELETE FROM posts WHERE id=$id";
$conn->query($sql);
header('Location: index.php');
?>
## 마무리
이로써 PHP와 MySQL을 이용한 간단한 블로그 시스템 구축이 완료되었습니다. 이 튜토리얼을 통해 기본적인 CRUD 기능을 구현하는 방법을 배웠습니다. 추가적으로 사용자 인증, 댓글 기능, 태그 기능 등을 추가하여 기능을 확장할 수 있습니다. 더 나아가 프레임워크를 사용하여 보다 구조적이고 유지보수가 용이한 코드를 작성하는 방향으로 나아가보세요!