PHP-MySQL 연동하여 원하는 웹 만들기

학교에서 진행하는 capston 대회 중 웹, 데이터베이스가 필요할 것 같아서 생활코딩 사이트를 통해 공부해 보았다. 

생활코딩site : https://opentutorials.org/course/1

웹에서 사용자에게 입력받은 것들을 MySQL 이라는 데이터베이스에 저장하여 관리하고

그것을 이용해 보는 것을 매우 간단하게 해 보았다.

아파치 라는 웹 서버 프로그램을 사용 했고 MySQL , PHP 를 이용해서 만들어 보았다.

WAMP를 다운로드 하여 Apache, MySQL, PHP 를 한 번에 다운로드 할 수 있었고 그에 따라서 진행하였다.

https://seopseop911.tistory.com/27 Windows에 WAMP 실행, 설치방법WAMP 란? Windows Apache MySQL PHP 의 약자로 윈도우에서 3가지를 한 번에 설치하는 모듈을 뜻 함 우선 아래의 사이트에 접속. https://bitnami.com/stack/wamp/installer Install WAMP, Download WAMP show M..seopseop911.tistory.com

우선 MySQL에서 데이터베이스와 TABLE을 짠다.

학교 capston 대회에 참가하게 돼 DATABASE의 이름을 capston 이라 지음.

mysql> CREATE DAtABASE capston;
mysql> use capston;
mysql> create table topic(
    -> id int(11) not null AUTO_INCREMENt primary key,
    -> stNUM int(11) null,
    -> name varchar(30) null,
    -> temperature decimal(7,2) null,
    -> created DATETIME NOT NULL);

id 값은 자동적으로 증가 하도록, 

stNUM은 사용자입력 값이기에 NULL

name은 사용자입력 값이기에 NULL

temperature은 소숫점이 가능하기에 형식을 decimal(7,2) 로 하였고 NULL

created는 자동적으로 시간을 체크하여 표기해 주도록 하였다.

아래의 사진은 만들어진 topic 이라는 table의 형식이다.

Database에 값을 insert하는 것은 웹에서 할 것이다.

< create.php >

<?php
$conn = mysqli_connect(
  'localhost', // 주소
  '사용자ID',
  '비밀번호',
  'capston'); // 데이터베이스 이름

$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);

?>
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>WEB</title>
  </head>
  <body>
    <h1>Hoseo University</h1>
    <h3> 당신의 학번, 이름, 체온을 입력하세요. </h3>
    <form action="process_create.php" method="POST">
      <p><input type="text" name="stNUM" placeholder="학번 (ex)20161712"></p>
      <p><input type="text" name="name" placeholder="이름 (ex)홍길동"></p>
      <p><input type="text" name="temperature" placeholder="체온 (ex)36.5"></p>
      <p><input type="submit"></p>
    </form>
  </body>
</html>

< process_create.php >

<?php
$conn = mysqli_connect(
  'localhost',
  '사용자ID',
  '비밀번호',
  'capston');
  # title, description 이라는 사용자가 입력한 정보를 그대로 php에 입력하는 행위는 보안에 취약, 따라서 관리 필요

  $filtered = array(
    'stNUM'=>mysqli_real_escape_string($conn, $_POST['stNUM']),
    'name'=>mysqli_real_escape_string($conn, $_POST['name']),
    'temperature'=>mysqli_real_escape_string($conn, $_POST['temperature'])
  );

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

위와 같이 코드를 짜서 접속해 보면 아래와 같이 웹이 만들어 진다.

https://seopseop911.tistory.com/28