216.73.217.148 TODAY : 5,107
์ž๋ฃŒ์‹ค ์„œ๋ธŒ ํƒ€์ดํ‹€ ์•„์ด์ฝ˜

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ค‘๊ธ‰

๐Ÿ“š PHP ์ค‘๊ธ‰ - 3์ฃผ์ฐจ: ๊ฒŒ์‹œํŒ CRUD ๊ตฌํ˜„ (๊ธฐ๋ณธ) - 02 ๊ธ€ ๋ชฉ๋ก, ๊ธ€ ์ž‘์„ฑ, ๊ธ€ ๋ณด๊ธฐ, ๊ธ€ ์ˆ˜์ •, ๊ธ€ ์‚ญ์ œ

์ž๋ฃŒ ๊ธฐ๋ณธ์ •๋ณด

๐Ÿ“š PHP ์ค‘๊ธ‰ - 3์ฃผ์ฐจ: ๊ฒŒ์‹œํŒ CRUD ๊ตฌํ˜„ (๊ธฐ๋ณธ) - 02 ๊ธ€ ๋ชฉ๋ก, ๊ธ€ ์ž‘์„ฑ, ๊ธ€ ๋ณด๊ธฐ, ๊ธ€ ์ˆ˜์ •, ๊ธ€ ์‚ญ์ œ

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ์กฐํšŒ: 201
  • ๋‹ค์šด: 1

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-07-22 10:28:44
  •  

> ์„ค๋ช…



์•ˆ๋…•ํ•˜์„ธ์š”! ์ง€๋‚œ์ฃผ์— ์ด์–ด ์ด๋ฒˆ ์ฃผ์—๋Š” #PHP #๊ฒŒ์‹œํŒ ๊ตฌํ˜„์˜ ํ•ต์‹ฌ์ธ #CRUD ๊ธฐ๋Šฅ์„ ํ•จ๊ป˜ ๋งŒ๋“ค์–ด ๋ณผ ๊ฑฐ์˜ˆ์š”. #CRUD๋Š” Create(์ƒ์„ฑ), Read(์ฝ๊ธฐ), Update(์ˆ˜์ •), Delete(์‚ญ์ œ)์˜ ์•ฝ์ž๋กœ, ๋Œ€๋ถ€๋ถ„์˜ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค์—์„œ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ธฐ๋Šฅ์ด์ฃ .





1. ๊ฐœ์š” ๋ฐ ๋ชฉํ‘œ




์ด๋ฒˆ ์ฃผ์ฐจ์—์„œ๋Š” ๊ฐ„๋‹จํ•œ #๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค์–ด์„œ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— #๊ธ€์„ ์ €์žฅํ•˜๊ณ , ์ฝ๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ์‚ญ์ œํ•˜๋Š” ๊ณผ์ •์„ #PHP ์ฝ”๋“œ๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณผ ๊ฑฐ์˜ˆ์š”. #ํ”„๋ก ํŠธ์—”๋“œ ๋””์ž์ธ๋ณด๋‹ค๋Š” #๋ฐฑ์—”๋“œ #๋กœ์ง ๊ตฌํ˜„์— ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.



์ฃผ์š” ๋ชฉํ‘œ:

  • #๊ธ€ ๋ชฉ๋ก(#Read ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€) ํ‘œ์‹œ

  • #๊ธ€ ์ž‘์„ฑ(#Create ๊ธฐ๋Šฅ) ํผ ๋ฐ ์ฒ˜๋ฆฌ

  • #๊ธ€ ๋ณด๊ธฐ(#Read ๊ธฐ๋Šฅ) ์ƒ์„ธ ํŽ˜์ด์ง€

  • #๊ธ€ ์ˆ˜์ •(#Update ๊ธฐ๋Šฅ) ํผ ๋ฐ ์ฒ˜๋ฆฌ

  • #๊ธ€ ์‚ญ์ œ(#Delete ๊ธฐ๋Šฅ) ์ฒ˜๋ฆฌ





2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค€๋น„


2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค€๋น„


๊ฐ€์žฅ ๋จผ์ € #๊ฒŒ์‹œํŒ #๊ธ€์„ ์ €์žฅํ•  #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค #ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•ด์š”. #MySQL์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ• ๊ฒŒ์š”. board๋ผ๋Š” ์ด๋ฆ„์˜ #ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋‹ค์Œ์ฒ˜๋Ÿผ ํ•„๋“œ๋ฅผ ๊ตฌ์„ฑํ•ด ๋ณด์„ธ์š”.



SQL

CREATE TABLE board (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    author VARCHAR(100) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);



  • id: ๊ฐ #๊ธ€์˜ ๊ณ ์œ  ๋ฒˆํ˜ธ (๊ธฐ๋ณธ ํ‚ค, ์ž๋™ ์ฆ๊ฐ€)

  • title: #๊ธ€์˜ ์ œ๋ชฉ

  • content: #๊ธ€์˜ ๋‚ด์šฉ

  • author: #์ž‘์„ฑ์ž

  • created_at: #๊ธ€์ด ์ž‘์„ฑ๋œ ์‹œ๊ฐ„

  • updated_at: #๊ธ€์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ์‹œ๊ฐ„





3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ •




#PHP ์Šคํฌ๋ฆฝํŠธ์—์„œ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • ํŒŒ์ผ(db_config.php ๋“ฑ์œผ๋กœ ์ €์žฅ)์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.



PHP

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // ์„ ํƒ์ : PDO ๊ธฐ๋ณธ ํŽ˜์น˜ ๋ชจ๋“œ ์„ค์ • (์—ฐ๊ด€ ๋ฐฐ์—ด)
    $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    // echo "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ฑ๊ณต!"; // ํ…Œ์ŠคํŠธ์šฉ
} catch(PDOException $e) {
    die("๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹คํŒจ: " . $e->getMessage());
}
?>





4. ๊ธ€ ๋ชฉ๋ก ๋ณด๊ธฐ (list.php)


4. ๊ธ€ ๋ชฉ๋ก ๋ณด๊ธฐ (list.php)


์ด์ œ #๊ฒŒ์‹œํŒ์˜ #๊ธ€ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๊ฑฐ์˜ˆ์š”.



PHP

query("SELECT COUNT(*) FROM board");
    $total_posts = $total_posts_stmt->fetchColumn();
    $total_pages = ceil($total_posts / $posts_per_page);

    // ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ (์ตœ์‹  ๊ธ€๋ถ€ํ„ฐ, ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ ์šฉ)
    $stmt = $conn->prepare("SELECT id, title, author, created_at FROM board ORDER BY created_at DESC LIMIT :offset, :limit");
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
    $stmt->bindParam(':limit', $posts_per_page, PDO::PARAM_INT);
    $stmt->execute();
    $posts = $stmt->fetchAll();

} catch(PDOException $e) {
    echo "์˜ค๋ฅ˜: " . $e->getMessage();
    $posts = []; // ์˜ค๋ฅ˜ ์‹œ ๋นˆ ๋ฐฐ์—ด๋กœ ์ดˆ๊ธฐํ™”
}
?>



    
    
    
    


    ๊ฒŒ์‹œํŒ ๊ธ€ ๋ชฉ๋ก
    ์ƒˆ ๊ธ€ ์ž‘์„ฑ
     0): ?>
                
        
            
                ID
                ์ œ๋ชฉ
                ์ž‘์„ฑ์ž
                ์ž‘์„ฑ์ผ
            
        
        
            
                    
                        
                        
                        
                        
                    
                
            
                
                    ์•„์ง ์ž‘์„ฑ๋œ ๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.
                
            
        
    

    
        
            >
        
    







5. ๊ธ€ ์ž‘์„ฑ (write.php)

5. ๊ธ€ ์ž‘์„ฑ (write.php)



#์ƒˆ๋กœ์šด #๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํผ๊ณผ ์ œ์ถœ ์‹œ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” #๋กœ์ง์ด์—์š”.



PHP

prepare("INSERT INTO board (title, content, author) VALUES (:title, :content, :author)");
            $stmt->bindParam(':title', $title);
            $stmt->bindParam(':content', $content);
            $stmt->bindParam(':author', $author);
            $stmt->execute();

            $message = "๊ธ€์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!";
            header('Location: list.php'); // ๊ธ€ ๋ชฉ๋ก์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
            exit();
        } catch(PDOException $e) {
            $message = "๊ธ€ ์ž‘์„ฑ ์˜ค๋ฅ˜: " . $e->getMessage();
        }
    }
}
?>



    
    
    
    


    ์ƒˆ ๊ธ€ ์ž‘์„ฑ
    
        
    
    
        
            ์ œ๋ชฉ:
            
        
        
            ์ž‘์„ฑ์ž:
            
        
        
            ๋‚ด์šฉ:
            
        
        ์ž‘์„ฑ ์™„๋ฃŒ
        ๋ชฉ๋ก์œผ๋กœ
    







6. ๊ธ€ ๋ณด๊ธฐ (view.php)




ํŠน์ • #๊ธ€์˜ ๋‚ด์šฉ์„ ์ƒ์„ธํ•˜๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.



PHP

 0) {
    try {
        $stmt = $conn->prepare("SELECT id, title, content, author, created_at, updated_at FROM board WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute();
        $post = $stmt->fetch();

        if (!$post) {
            echo "ํ•ด๋‹น ๊ธ€์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.";
            exit();
        }
    } catch(PDOException $e) {
        echo "์˜ค๋ฅ˜: " . $e->getMessage();
        exit();
    }
} else {
    echo "์ž˜๋ชป๋œ ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค.";
    exit();
}
?>



    
    
    
    


    
    
        ์ž‘์„ฑ์ž:  | 
        ์ž‘์„ฑ์ผ:  | 
        ์ˆ˜์ •์ผ: 
    
    
        
    

    
        ์ˆ˜์ •
        
            
            ์‚ญ์ œ
        
        ๋ชฉ๋ก
    







7. ๊ธ€ ์ˆ˜์ • (edit.php)

7. ๊ธ€ ์ˆ˜์ • (edit.php)



๊ธฐ์กด #๊ธ€์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™€์„œ ์ˆ˜์ •ํ•˜๊ณ , #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—…๋ฐ์ดํŠธํ•˜๋Š” #๋กœ์ง์ด์—์š”.



PHP

 0) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // POST ์š”์ฒญ (์ˆ˜์ • ์™„๋ฃŒ)
        $title = trim($_POST['title'] ?? '');
        $content = trim($_POST['content'] ?? '');
        $author = trim($_POST['author'] ?? ''); // ์ž‘์„ฑ์ž๋Š” ๋ณดํ†ต ์ˆ˜์ •ํ•˜์ง€ ์•Š์ง€๋งŒ, ์˜ˆ์‹œ๋กœ ํฌํ•จ

        if (empty($title) || empty($content) || empty($author)) {
            $message = "๋ชจ๋“  ํ•„๋“œ๋ฅผ ์ฑ„์›Œ์ฃผ์„ธ์š”.";
        } else {
            try {
                $stmt = $conn->prepare("UPDATE board SET title = :title, content = :content, author = :author, updated_at = NOW() WHERE id = :id");
                $stmt->bindParam(':title', $title);
                $stmt->bindParam(':content', $content);
                $stmt->bindParam(':author', $author);
                $stmt->bindParam(':id', $id, PDO::PARAM_INT);
                $stmt->execute();

                $message = "๊ธ€์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค!";
                header('Location: view.php?id=' . $id); // ์ˆ˜์ •๋œ ๊ธ€ ๋ณด๊ธฐ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
                exit();
            } catch(PDOException $e) {
                $message = "๊ธ€ ์ˆ˜์ • ์˜ค๋ฅ˜: " . $e->getMessage();
            }
        }
    }

    // GET ์š”์ฒญ ๋˜๋Š” POST ์š”์ฒญ ์‹คํŒจ ์‹œ ๊ธฐ์กด ๊ธ€ ๋‚ด์šฉ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
    try {
        $stmt = $conn->prepare("SELECT id, title, content, author FROM board WHERE id = :id");
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute();
        $post = $stmt->fetch();

        if (!$post) {
            echo "ํ•ด๋‹น ๊ธ€์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.";
            exit();
        }
    } catch(PDOException $e) {
        echo "์˜ค๋ฅ˜: " . $e->getMessage();
        exit();
    }
} else {
    echo "์ž˜๋ชป๋œ ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค.";
    exit();
}
?>



    
    
    
    


    ๊ธ€ ์ˆ˜์ •
    
        
    
    
        
        
            ์ œ๋ชฉ:
            
        
        
            ์ž‘์„ฑ์ž:
            
        
        
            ๋‚ด์šฉ:
            <?php echo htmlspecialchars($post['content']); ?>
        
        ์ˆ˜์ • ์™„๋ฃŒ
        ์ทจ์†Œ
    







8. ๊ธ€ ์‚ญ์ œ (delete.php)




#ํŠน์ • #๊ธ€์„ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ฑฐํ•˜๋Š” #๋กœ์ง์ด์—์š”. ๋ณด์•ˆ์„ ์œ„ํ•ด #POST ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•„์š”.



PHP

 0) {
        try {
            $stmt = $conn->prepare("DELETE FROM board WHERE id = :id");
            $stmt->bindParam(':id', $id, PDO::PARAM_INT);
            $stmt->execute();

            echo "๊ธ€์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.";
            header('Location: list.php'); // ๊ธ€ ๋ชฉ๋ก์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
            exit();
        } catch(PDOException $e) {
            echo "๊ธ€ ์‚ญ์ œ ์˜ค๋ฅ˜: " . $e->getMessage();
            // ์˜ค๋ฅ˜ ์‹œ์—๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์ ์ ˆํ•œ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
            echo "๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ";
            exit();
        }
    } else {
        echo "์ž˜๋ชป๋œ ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค.";
        echo "๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ";
        exit();
    }
} else {
    echo "์ž˜๋ชป๋œ ์š”์ฒญ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค."; // POST๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผ ์‹œ
    echo "๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ";
    exit();
}
?>





9. ๋งˆ์น˜๋ฉฐ




์ด๋ฒˆ ์ฃผ์—๋Š” #PHP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ #๊ฒŒ์‹œํŒ์˜ ๊ธฐ๋ณธ์ ์ธ #CRUD ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด ๋ณด์•˜์–ด์š”. #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ๋ถ€ํ„ฐ #๊ธ€ ์ƒ์„ฑ, ์ฝ๊ธฐ, ์ˆ˜์ •, ์‚ญ์ œ๊นŒ์ง€์˜ ์ „์ฒด #๋กœ์ง ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์…จ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์ฐจ์—๋Š” ์ด ๊ธฐ๋ณธ #๊ฒŒ์‹œํŒ์„ ์ข€ ๋” ๊ฐœ์„ ํ•˜๊ณ  ํŽ˜์ด์ง• ์ ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ˆ ๊ธฐ๋Œ€ํ•ด ์ฃผ์„ธ์š”!




๊ฐ€์„ฑ๋น„ VPN ๋ฃจ์  VPN

VPN์ด ํ•„์š” ํ•˜๋‹ค๋ฉด

LuzenVPN(๋ฃจ์  VPN) #์ฐฉํ•œ๊ฐ€๊ฒฉ, #๋น ๋ฅธ์„œ๋น„์Šค, #์•ˆ์ •์„ฑ ๊นŒ์ง€ ๊ฐ–์ถ˜, #ํด๋ฆฐ์•„์ดํ”ผ ์ œ๊ณต ์œผ๋กœ #๋งˆ์ผ€ํŒ… ๋ถ€ํ„ฐ #๊ฒŒ์ž„ ๊นŒ์ง€! ํ•œ๋ฒˆ์— ํ•ด๊ฒฐ

https://vpn.luzensoft.com




PHP - ์ค‘๊ธ‰ ์นดํ…Œ๊ณ ๋ฆฌ Navigation
์ „์ฒด ์นดํ…Œ๊ณ ๋ฆฌ Navigation