IT정보

php 게시글에 1일 3일 7일 14일 21일 30일 무기한 자동삭제

AICanvas 2023. 6. 7. 06:54
728x90
SMALL

데이타베이스 설정 

CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    content VARCHAR(255),
    created_at DATETIME
);

게시글작성

<?php
// 데이터베이스 연결 설정
$host = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";

// 데이터베이스 연결
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
    die("데이터베이스 연결 실패: " . mysqli_connect_error());
}

// 게시글 작성 함수
function createPost($content) {
    global $conn;
    $createdAt = date("Y-m-d H:i:s");

    $query = "INSERT INTO posts (content, created_at) VALUES ('$content', '$createdAt')";
    if (mysqli_query($conn, $query)) {
        echo "게시글이 작성되었습니다.";
    } else {
        echo "게시글 작성 실패: " . mysqli_error($conn);
    }
}

// 예시 게시글 작성
createPost("첫 번째 게시글");
?>

스크립트

<?php
// 데이터베이스 연결 설정
$host = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";

// 데이터베이스 연결
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
    die("데이터베이스 연결 실패: " . mysqli_connect_error());
}

// 설정된 기간이 지난 게시글 삭제 함수
function deleteExpiredPosts() {
    global $conn;
    $currentDate = date("Y-m-d H:i:s");

    $query = "DELETE FROM posts WHERE created_at < DATE_SUB('$currentDate', INTERVAL 30 DAY)";
    if (mysqli_query($conn, $query)) {
        echo "지난 게시글이 삭제되었습니다.";
    } else {
        echo "게시글 삭제 실패: " . mysqli_error($conn);
    }
}

// 설정된 기간이 지난 게시글 삭제 실행
deleteExpiredPosts();
?>

위의 예제에서는 createPost() 함수를 사용하여 게시글을 작성하고, deleteExpiredPosts() 함수를 사용하여 설정된 기간이 지난 게시글을 삭제합니다. 

728x90
LIST