본문 바로가기
웹 개발

[PHP] 관리자 페이지 제작 & DB 접속

by hans-0 2025. 2. 13.

관리자 화면

회원 관리를 위해 관리자 페이지 제작과 DB를 연결해 User 테이블이 생성까지 진행했다.

페이지 명 > master.php

<?php
echo '<br><br>';
echo '<center>';
echo '<h2 style="color: blue;">회원 관리 페이지</h2>';
echo '<hr>';
echo '<p>버튼을 클릭하여 테이블을 생성하세요.</p>';
echo '<a href="user_tbl.php" style="padding: 10px 20px; background-color: green; color: white; text-decoration: none; border-radius: 5px;">[ 테이블 생성 ]</a>';
echo '</center>';
?>

테이블을 DB에 연결을 수행하기 위해 DB 생성을 한다.

DB 명 > apm_db;

msyql -uroot -p
mysql> CREATE DATABASE apm_db;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| apm_db             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

 

테이블 생성을 위해 MySQL DB에 접속하기 위한 php

*시간 단축을 위해 include 명령으로 가져와 사용하기 위한 프로그램 작성한다.

(MySQL에 직접 접속해서 테이블 기타 등 직접 생성하셔도 됩니다)

<?php
$host = "localhost IP 주소 설정 및 localhost, 127.0.0.1";
$user = "root";
$passwd = "hans";
$dbname = "apm_db";

// MySQLi 객체 생성 (보안 강화)
$connect = new mysqli($host, $user, $passwd, $dbname);

// 연결 오류 확인
if ($connect->connect_error) {
    die("DB접속 실패: " . $connect->connect_error);
}

// 한글 깨짐 방지
$connect->set_charset("utf8");

echo "DB에 성공적으로 연결되었습니다!";
?>

 

<?php
// DB 연결 파일 포함
include "./connect_db.php"; // connect_db.php에서 $connect 객체 생성

// 테이블 존재 여부 확인
$sql_check = "SHOW TABLES LIKE 'user_tbl'";
$result_check = $connect->query($sql_check);

if ($result_check->num_rows > 0) {
    // 테이블이 존재하면 에러 메시지 출력 후 리다이렉트
    echo "<font size=4><br><center> 이미 user_tbl 테이블이 존재합니다. </font><hr>";
    echo "<script>
        alert('[존재하는 테이블]\\r\\n user_tbl 테이블은 이미 존재합니다.');
        location.replace('success.php');
        </script>";
    exit; // 실행 중단
}

// 테이블 생성 SQL
$sql_create = "CREATE TABLE user_tbl (
    no INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    userid VARCHAR(12) NOT NULL,
    name VARCHAR(12) NOT NULL,
    passwd VARCHAR(12),
    sex CHAR(1),
    email VARCHAR(30),
    date DATETIME,
    ip_addr VARCHAR(30)
)";

// 테이블 생성 실행
if ($connect->query($sql_create) === TRUE) {
    echo "<font size=4><br><center> user_tbl 테이블을 성공적으로 생성했습니다. </font><hr>";
    echo "<script>
        alert('[테이블 생성 성공]\\r\\n user_tbl 테이블을 생성했습니다.');
        location.replace('success.php');
        </script>";
} else {
    echo "<font size=4><br><center> 테이블 생성 실패: " . $connect->error . "</font><hr>";
}

// DB 연결 종료
$connect->close();
?>

참고 서적 > PHP Promgramming 정복하기

https://www.yes24.com/Product/Goods/19584929

 

PHP Programming 정복하기 - 예스24

웹 데이터베이스 프로그래밍에 대한 공부를 하겠다는 의지로 막상 뛰어 들었지만 항상 난관에 부딪치는 경험은 누구나 한 번쯤 겪었으리라 생각됩니다. 웹 데이터베이스는 구축하기 위해서는

www.yes24.com

이 코드는 책 "PHP 프로그래밍 정복"의 내용을 참고하여, 최신 PHP 버전에 맞게 수정하였습니다.

 

DB 접속 오류 발생 시 해결

- 특정 IP에서만 접속 허용 설명

/etc/mysql/mysql.conf.d/mysqld.cnf 파일에서

31. bind-address = 127.0.0.1 -> 서버 IP로 변경한다.

CREATE USER 'root'@'IP address' IDENTIFIED BY 'hans';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'IP address' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

 

이전 글

2025.02.10 - [웹 개발] - [APM] Ubuntu 22.04 APM 설치

'웹 개발' 카테고리의 다른 글

[PHP] 회원가입에서 아이디 중복 체크  (0) 2025.02.24
[PHP] 회원 가입 페이지  (0) 2025.02.24
[PHP] 회원 관리 프로그램 제작 성공 화면  (0) 2025.02.19
[APM] Ubuntu 22.04 APM 설치  (0) 2025.02.10
Cookie & Session  (0) 2025.01.23