PHP Code 상에서 데이터베이스(DB)와 테이블을 생성하는 코드 예제를 만들었다.
코드는 bootstrap 기반으로 구현했다.
테스트에 사용한 코드를 첨부한다.
테스트 환경 : 윈도우10 autoset9 APM(apache + PHP + MySQL)
<!DOCTYPE html>
<head>
<title>DB 생성 및 테이블 생성</title>
<meta charset="UTF-8" />
<meta name="robots" content="noindex,nofollow"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>
<meta http-equiv="X-UA Compatible" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$("#create").click(function(){
if(!form.hostname.value) {
alert('Host명을 입력하세요!');
form.host.focus();
return false;
}
if(!form.dbuser.value) {
alert('DB User가 입력되지 않았습니다!');
form.dbuser.focus();
return false;
}
if(!form.dbpasswd.value) {
alert('DB Password를 입력하세요!');
form.dbpasswd.focus();
return false;
}
if(!form.dbname.value) {
alert('DB Name을 입력하세요!');
form.dbname.focus();
return false;
}
form.submit();
});
});
</script>
</head>
<body topmargin=50>
<?php
if(!empty($_POST['dbpasswd']) && !empty($_POST['dbname'])) {
// DB 연결
$conn = mysqli_connect("localhost",$_POST['dbuser'],$_POST['dbpasswd']);
if(mysqli_connect_errno()){
echo "MySQL 연결 오류 : ".mysqli_connect_error();
}
// Create Database
$sql ="Create DATABASE IF NOT EXISTS ".$_POST['dbname']." default character set utf8";
if(mysqli_query($conn,$sql)){
//echo '<script>alert("Created DATABASE");</script>'; // $sql 결과 테스트 용도
// dbinfo.php 파일에 기록
$myfile = fopen("dbinfo.php", "w") or die("Unable to open file!");
fwrite($myfile, "<?php\n");
$host = "\$db['host'] = 'localhost';\n";
fwrite($myfile, $host);
$dbname = "\$db['name'] = '".$_POST['dbname']."';\n";
fwrite($myfile, $dbname);
$dbuser = "\$db['user'] = '".$_POST['dbuser']."';\n";
fwrite($myfile, $dbuser);
$dbpasswd = "\$db['pass'] = '".$_POST['dbpasswd']."';\n";
fwrite($myfile, $dbpasswd);
$dbport = "\$db['port'] = '3306';\n";
fwrite($myfile, $dbport);
fwrite($myfile, "?>\n");
fclose($myfile);
} else {
echo "DB 만들기 오류 : ".mysqli_error($conn);
echo "<script>location.replace('dbcreate.php')</script>";
}
require_once 'dbconnect.php'; // DB 생성후 DB명까지 인식되는 db연결 필수
// pollinfo 테이블 생성 (테이블 생성 예시로 반드시 MySQL에서 직접 실행해본 테이블을 적어야 한다.)
$sql = "CREATE TABLE IF NOT EXISTS pollinfo(
uid int(11) NOT NULL AUTO_INCREMENT,
question varchar(100),
start_date date,
end_date date,
now_progress char(1),
select1 varchar(50),
select2 varchar(50),
select3 varchar(50),
select4 varchar(50),
select5 varchar(50),
select6 varchar(50),
select7 varchar(50),
select8 varchar(50),
select9 varchar(50),
select10 varchar(50),
poll_type char(1),
no_item tinyint(2),
PRIMARY KEY(uid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
mysqli_query($db,$sql);
$sql = "CREATE TABLE IF NOT EXISTS pollresult(
uid int(11) not null auto_increment,
no_poll int(10) default '0' not null,
no_select tinyint(4),
user_ip varchar(15),
submit_date datetime,
PRIMARY KEY(uid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
mysqli_query($db,$sql);
echo "<center><font size=2>설문조사 테이블이 성공적으로 생성 되었습니다.</font></center>";
echo "<script>location.replace('index.php')</script>";
exit;
} else {
//echo '<script>alert("입력된 값이 없습니다");</script>';
}
?>
<div class="container">
<h4 align=center><b>◎◎ 데이타베이스 생성 및 테이블 생성 ◎◎</b></h4>
<form name="form" method="post" action="dbcreate.php">
<table class="table table-striped">
<tr>
<td colspan="3" align=center>DataBase Create Configuration</td>
</tr>
<tr>
<td>Host Name</td>
<td><input type="text" name="hostname" value="localhost" size="20"></td>
<td>접속할 호스트 이름</td>
</tr>
<tr>
<td>User Name</td>
<td><input type="text" name="dbuser" value="root" size="20"></td>
<td>MySQL 사용자 이름</td>
</tr>
<tr>
<td>User Passwd</td>
<td><input type="password" name="dbpasswd" value="autoset" size="20"></td>
<td>MySQL 사용자 비밀번호</td>
</tr>
<tr>
<td>DB Name</td>
<td><input type="text" name="dbname" value="" size="20"></td>
<td>생성할 MySQL DB이름</td>
</tr>
<tr>
<td colspan=3>
<div align='center'>
<button type="submit" class="btn btn-primary" id="create">DB생성</button>
<button type='reset' class="btn btn-warning">취소</button>
</div>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
'Web 프로그램 > DB 연동 및 처리' 카테고리의 다른 글
[Morden PHP] dbController Class 만들기 (2) | 2018.06.13 |
---|---|
MySQLi 객체 접속 방식(중복자료 검사 및 Insert) (0) | 2017.10.07 |
PHP 에서 MySQL 테이블 생성하는 방법 (0) | 2017.05.17 |
[PHP] MySQL 연동 기본 코딩 방법 ★★★ (0) | 2017.03.11 |
[PHP] 통신의 기본 이해 및 코딩방법 ★★★★★ (1) | 2016.10.28 |