PHP DB 연결로 간단한 데이터 받아오기

gyub·2025년 4월 14일
0

모의해킹 스터디

목록 보기
4/31

PHP를 활용해 학생 이름을 입력하면 해당 학생의 점수를 출력하는 페이지를 만들어 보겠습니다

1️⃣ 데이터베이스 생성 : CREATE DATABASE

데이터베이스를 생성하는 명령은 CREATE DATABASE 입니다

학생의 데이터들을 담을 공간이니 student 라는 이름의 데이터베이스를 만들어 볼게요

CREATE DATABASE student DEFAULT CHARACTER SET UTF8;

한글도 해석할 수 있도록 UTF8 기반의 데이터베이스를 생성했습니다

2️⃣ 사용자 권한 부여

이제 이 새로 만든 student 데이터베이스를 사용할 수 있도록, 계정에 권한을 부여해야 합니다

GRANT ALL PRIVILEGES ON student.* TO 'admin'@'localhost';

student.* 은 student라는 데이터베이스의 모든 테이블을 의미합니다

저는 admin이라는 계정에 student 데이터베이스의 모든 테이블에 대한 권한을 부여했습니다

3️⃣ 테이블 생성

그럼 student 데이터베이스에 학생들의 성적을 저장할 student_score 라는 테이블을 만들어 보겠습니다

테이블을 생성하는 명령은 CREATE TABLE 입니다

만들기 전 어떤 정보를 저장할 지 정해야겠네요

저는 이름과 성적을 문자열 형태로 저장하는 테이블을 만들도록 하겠습니다

그리고 각 데이터가 고유하게 구분될 수 있도록 id 라는 고유 번호를 부여하겠습니다

CREATE TABLE student_score (
id INT(20) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
score VARCHAR(20)
);

4️⃣ 데이터 입력

이제 테이블까지 완성되었으니, 이 테이블에 데이터를 입력해 보겠습니다

테이블에 데이터를 입력하는 명령은 INSERT INTO 입니다

저는 이름이 doldol, 성적은 80인 데이터를 입력해 보겠습니다

INSERT INTO student_score VALUES (NULL, ‘doldol’,80);

id는 자동으로 입력되도록 NULL로 설정하였습니다

5️⃣ 데이터 입력 받는 페이지 만들기

이제 데이터베이스는 모두 준비되었습니다

그럼 이름을 검색하면 결과를 보여줄 페이지를 만들어 보겠습니다

GET 방식으로 이름을 입력받아 데이터베이스에서 해당 학생의 점수를 가져오는 페이지입니다

만약 없는 학생이라면 해당 학생은 존재하지 않는다는 문구까지 출력하겠습니다

<html>
    <body>
        <?php
        	# 상수로 DB 주소, 아이디, 비밀번호, DB 이름 선언
            define('DB_SERVER','localhost');
            define('DB_USERNAME','[계정 아이디]');
            define('DB_PASSWORD','[계정 비밀번호]');
            define('DB_NAME','student');
    
            #DB 연결
            $db_conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

        ?>

        <form action="" method="get">
            <input type="text" name="name" placeholder="이름">
            <input type="button" value="검색">
        </form>

        <?php
        	# 만약 폼이 제출되어 학생의 이름을 입력받았다면 name이라는 변수에 저장
            if ($_GET['name']) {
                $name = $_GET['name'];

            	# student_score 테이블에서 name이 입력받은 이름인 데이터를 가져옴
                $sql = "SELECT * FROM student_score WHERE name='".$name."'";
                
                # DB 연결 티켓과 sql문을 mysqli_query 함수를 이용해 전송하고 결과를 result 변수에 저장
                $result = mysqli_query($db_conn, $sql);
                
                # mysqli_fetch_array = select의 결과를 한 줄씩 가져오는 함수
                $row = mysqli_fetch_array($result);
                
                # 결과가 없는 경우
                if($row[0]==""){
                    echo "해당 학생을 찾을 수 없습니다.";
                    
                } else {
                    echo $row['name']."학생의 점수는 ".$row['score']."입니다";
                }
            }
        ?>
    </body>
</html>

SQL문을 작성할 때는 변수와 따옴표 사용 등에 유의합니다

5️⃣ 완성


<doldol 학생을 검색했을 때 결과>

<solsol 학생을 검색했을 때 결과>

0개의 댓글