관리자 화면
회원 관리를 위해 관리자 페이지 제작과 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;
이전 글
'웹 개발' 카테고리의 다른 글
[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 |