power-girl0-0

[ PHP & MySQL ] 글 생성 본문

언어/PHP

[ PHP & MySQL ] 글 생성

power-girl0-0 2021. 3. 28. 23:03
728x90

생활코딩 PHP & MySQL을 참고하여 공부하였습니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.

( 출처 :  https://opentutorials.org/course/743inf.run/pBzy opentutorials.org/course/3167)


이전 글에 실습했던 것을 토대로, 해당 글에서는 간단한 글 생성을 해보자.


html소스코드에서 create.php로 이동하는 a태그를 작성한다.

<a href = "create.php">create</a>


create를 클릭하였을 때, 이동되는 create.php를 생성해보자.

간단한 입력 form으로 소스는 아래와 같다.

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>WEB</title>
  </head>
  <body>
    <h1>Create Board</h1>
    
    <form action="process_create.php" method="POST">
      <p><input type="text" name="title" placeholder="title"></p>
      <p><textarea name="description" placeholder="description"></textarea></p>
      <p><input type="submit"></p>
    </form>
  </body>
</html>


이번에는 제출을 눌렀을 때, 이동되는 process_create.php를 구현해보자.

그 전에, 해당 값이 잘 넘어오는지 확인해볼 필요가 있다.

<?php
    var_dump($_POST);
?>

위 코드에서 var_dump( )는 변수의 정보를 출력하는 함수이다.

사진과 같이, a와 b의 값이 전송되는 것을 확인할 수 있다.


값이 잘 넘어왔는지 확인되었으니, 이제 sql문을 활용하여 직접 데이터베이스에 삽입해보자.

<?php
    $sql = "
        INSERT INTO topic
          (title, description, created)
          VALUES(
            '{$_POST['title']}',
            '{$_POST['description']}',
            NOW()    
          )
        ";
    echo $sql;
?>

하지만, 이대로만 작성하면 안된다.

 

데이터베이스 연결하는 명령어도 작성해줘야 한다.

<?php
    $conn = mysqli_connect("localhost","root","db비밀번호","opentutorials");
    $sql = "
        INSERT INTO topic
          (title, description, created)
          VALUES(
            '{$_POST['title']}',
            '{$_POST['description']}',
            NOW()    
          )
        ";
    mysqli_query($conn, $sql);    
    echo $sql;
?>

해당 구문을 실행하기 전, 데이터베이스를 확인해보자.

위와 같이, 해당 테이블이 비어있는 것을 확인하였다.

이제 실행하여 값을 넣어보자.

 

실행을 위해, 위 코드의 페이지를 reaload한 후 테이블을 다시 확인해보았다.

아래 사진과 같이, 입력한 값이 테이블에 들어간 것을 확인할 수 있다.


마지막으로, 에러 발생시 문제가 발생하였다는 문구가 출력되도록 작성해보자.

또한, error 메시지를 관리자만 보도록 error_log에 따로 저장해보자.

$result = mysqli_query($conn, $sql);
    if(result === false){
        echo '저장된 과정에서 문제가 발생하였으니, 관리자에게 문의해주세요.';
        error_log(mysqli_error($conn));    
    }    

총 소스 코드는 아래와 같다.

<?php
$conn = mysqli_connect(
  'localhost',
  'root',
  'wjdqhqhdks',
  'opentutorials');
$sql = "
  INSERT INTO topic
    (title, description, created)
    VALUES(
        '{$_POST['title']}',
        '{$_POST['description']}',
        NOW()
    )
";
$result = mysqli_query($conn, $sql);
if($result === false){
  echo '저장하는 과정에서 문제가 생겼습니다. 관리자에게 문의해주세요';
  error_log(mysqli_error($conn));
} else {
  echo '성공했습니다. <a href="main.php">돌아가기</a>';
}
?>

 

 

728x90

'언어 > PHP' 카테고리의 다른 글

[ PHP & MySQL ] PHP & MySQL 보안  (0) 2021.03.29
[ PHP & MySQL ] 글 읽기  (0) 2021.03.29
[ PHP & MySQL ] SELECT  (0) 2021.03.29
[ PHP & MySQL ] PHP와 MySQL 연동하기  (0) 2021.03.28
[ PHP & MySQL ] web과 mysql 환경 구축  (0) 2021.03.28
Comments