PHP 통합 사용
PHP 기본 설정
- php 기본 세팅
모든 웹 서버 켜기
mobax에서 nat 열고 duplicate
# ssh -i id_rsa [email protected] // (bastion host으로 web02 접속)
# yum install -y httpd php php-mysql php-gd php-mbstring wget unzip mysql // 여러가지 설치
# cd /var/www/html
# mkdir php-test
# cd php-test/
# echo 'test' > index.html
http://(당신의 nat ip)/php-test/
방문하면 “TEST”라는 홈 페이지가 표시됩니다.
PHP의 데이터베이스 액세스
GUI를 통해 HeidiSQL에 연결하고 사용자를 관리해 봅시다.
// web02에서 db에 접속되나 확인
# mysql -h 192.168.0.70 -u root -p
exit
- php에서 DB 접속
vi connect-test.php //(New File)
// 아래 붙여 넣기
<?php
$db_host="(윈도우 아이피)";
$db_user="root";
$db_password="1234";
$db_name="";
$con=mysqli_connect($db_host, $db_user, $db_password, $db_name);
if ( mysqli_connect_error($con) ) {
echo "MariaDB 접속 실패 !
!
", "<br>";
echo "오류 원인 : ", mysqli_connect_error();
exit();
}
echo "MariaDB 접속 완전히 성공!
!
";
mysqli_close($con);
?>
# systemctl restart httpd //httpd와도 연동하므로 재시작해야함
http://(NAT IP)/php-test/connect-test.php를 방문하면
$db_password 값이 잘못된 경우
PHP로 데이터베이스 생성
vi create-db.php // (New File)
// 아래 붙여넣기
<?php
$con=mysqli_connect("(윈도우 IP)", "root", "1234", "") or die("MariaDB 접속 실패 !
!
");
$sql="CREATE DATABASE sqlDB";
$ret = mysqli_query($con, $sql);
if($ret) {
echo "sqlDB가 성공적으로 생성됨.";
}
else {
echo "sqlDB 생성 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
?>
http://(NAT IP)/php-test/create-db.php
방문할 때
HeidiSQL로 돌아가서 sqldb를 삭제해 봅시다.
제거했다가 다시 연결한 후
PHP에서 테이블 생성
vi create-table.php //(New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqldb") or die("MariaDB 접속 실패 !
!
");
$sql ="
CREATE TABLE userTbl
( userID CHAR(8) NOT NULL PRIMARY KEY,
name VARCHAR(10) NOT NULL,
birthYear INT NOT NULL,
addr CHAR(10) NOT NULL,
mobile1 CHAR(3),
mobile2 CHAR(8),
height SMALLINT,
mDate DATE
)
";
$ret = mysqli_query($con, $sql);
if($ret) {
echo "userTBL이 성공적으로 생성됨..";
}
else {
echo "userTBL 생성 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
?>
http://(네트워크 주소 변환)/php-test/create-table.php를 방문하면
php에서 데이터 입력
vi insert-data.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$sql ="
INSERT INTO userTbl VALUES
('LSG', '이승기', 1987, '서울', '011', '1111111', 182, '2008-8-8'),
('KBS', '김범수', 1979, '경남', '011', '2222222', 173, '2012-4-4'),
('KKH', '김경호', 1971, '전남', '019', '3333333', 177, '2007-7-7'),
('JYP', '조용필', 1950, '경기', '011', '4444444', 166, '2009-4-4'),
('SSK', '성시경', 1979, '서울', NULL , NULL , 186, '2013-12-12'),
('LJB', '임재범', 1963, '서울', '016', '6666666', 182, '2009-9-9'),
('YJS', '윤종신', 1969, '경남', NULL , NULL , 170, '2005-5-5'),
('EJW', '은지원', 1972, '경북', '011', '8888888', 174, '2014-3-3'),
('JKW', '조관우', 1965, '경기', '018', '9999999', 172, '2010-10-10'),
('BBK', '바비킴', 1973, '서울', '010', '0000000', 176, '2013-5-5')
";
$ret = mysqli_query($con, $sql);
if($ret) {
echo "userTBL이 데이터가 성공적으로 입력됨.";
}
else {
echo "userTBL 데이터 입력 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
?>
http://(NAT IP)/php-test/insert-data.php
PHP에서 데이터 검색
vi select-data.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$sql ="
SELECT * FROM userTBL
";
$ret = mysqli_query($con, $sql);
if($ret) {
echo mysqli_num_rows($ret), "건이 조회됨.<br><br>";
}
else {
echo "userTBL 데이터 조회 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
exit();
}
while($row = mysqli_fetch_array($ret)) {
echo $row('userID'), " ", $row('name'), " ", $row('height'), " ", "<br>";
}
mysqli_close($con);
?>
http://(NAT IP)/php-test/select-data.php
방문할 때
PHP를 사용하여 데이터베이스에 연결된 네트워크 구축
위에서 주요 데이터베이스 기능은 php 파일로 구현되었습니다.
이러한 php 파일을 생성하는 방법을 적용하여 링크를 생성하는 데이터베이스에 연결된 기본 웹을 구현합니다.
회원관리 초기화면
vi main.html // (New File)
//html 파일 작성
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<h1> 회원 관리 시스템 </h1>
<a href="http://kyounggu./m/select.php"> (1) 회원 조회 (조회 후 수정/삭제 가능) </a> <br><br>
<a href="insert.php"> (2) 신규 회원 등록 </a> <br><br>
<FORM METHOD="get" ACTION="update.php">
(3) 회원 수정 - 회원 아이디 : <INPUT TYPE ="text" NAME="userID">
<INPUT TYPE="submit" VALUE="수정">
</FORM>
<FORM METHOD="get" ACTION="delete.php">
(4) 회원 삭제 - 회원 아이디 : <INPUT TYPE ="text" NAME="userID">
<INPUT TYPE="submit" VALUE="삭제">
</FORM>
</BODY>
</HTML>
http://(NAT IP)/php-test/main.html
방문할 때
회원조회 화면(SELECT)
vi select.php // (New File)
//붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$sql ="SELECT * FROM userTBL";
$ret = mysqli_query($con, $sql);
if($ret) {
//echo mysqli_num_rows($ret), "건이 조회됨..<br><br>";
$count = mysqli_num_rows($ret);
}
else {
echo "userTBL 데이터 조회 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
exit();
}
echo "<h1> 회원 조회 결과 </h1>";
echo "<TABLE border=1>";
echo "<TR>";
echo "<TH>아이디</TH><TH>이름</TH><TH>출생년도</TH><TH>지역</TH><TH>국번</TH>";
echo "<TH>전화번호</TH><TH>키</TH><TH>가입일</TH><TH>수정</TH><TH>삭제</TH>";
echo "</TR>";
while($row = mysqli_fetch_array($ret)) {
echo "<TR>";
echo "<TD>", $row('userID'), "</TD>";
echo "<TD>", $row('name'), "</TD>";
echo "<TD>", $row('birthYear'), "</TD>";
echo "<TD>", $row('addr'), "</TD>";
echo "<TD>", $row('mobile1'), "</TD>";
echo "<TD>", $row('mobile2'), "</TD>";
echo "<TD>", $row('height'), "</TD>";
echo "<TD>", $row('mDate'), "</TD>";
echo "<TD>", "<a href="http://kyounggu./m/update.php?userID=", $row("userID'), "'>수정</a></TD>";
echo "<TD>", "<a href="delete.php?userID=", $row("userID'), "'>삭제</a></TD>";
echo "</TR>";
}
mysqli_close($con);
echo "</TABLE>";
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
?>
회원관리 초기화면에서 “(1) 회원문의”를 클릭하시면
새 구성원 입력(INSERT)
- 신규 회원 등록 화면 (액션은 아직 없음)
vi insert.php // (New File)
// 붙여넣기
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<h1> 신규 회원 입력 </h1>
<FORM METHOD="post" ACTION="insert_result.php">
아이디 : <INPUT TYPE ="text" NAME="userID"> <br>
이름 : <INPUT TYPE ="text" NAME="name"> <br>
출생년도 : <INPUT TYPE ="text" NAME="birthYear"> <br>
지역 : <INPUT TYPE ="text" NAME="addr"> <br>
휴대폰 국번 : <INPUT TYPE ="text" NAME="mobile1"> <br>
휴대폰 전화번호 : <INPUT TYPE ="text" NAME="mobile2"> <br>
신장 : <INPUT TYPE ="text" NAME="height"><br>
<BR><BR>
<INPUT TYPE="submit" VALUE="회원 입력">
</FORM>
</BODY>
</HTML>
회원관리 초기화면에서 “(2) 신규회원가입”을 누르시면,
입력할 양식이 구현되었으니 이제 양식에 입력한 값을 DB에 저장할 php를 생성합니다.
- 신규 회원 입력 결과 (action)
vi insert_result.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MySQL 접속 실패 !
!
");
$userID = $_POST("userID");
$name = $_POST("name");
$birthYear = $_POST("birthYear");
$addr = $_POST("addr");
$mobile1 = $_POST("mobile1");
$mobile2 = $_POST("mobile2");
$height = $_POST("height");
$mDate = date("Y-m-j");
$sql =" INSERT INTO userTbl VALUES('".$userID."','".$name."',".$birthYear;
$sql = $sql.",'".$addr."','".$mobile1."','".$mobile2."',".$height.",'".$mDate."')";
$ret = mysqli_query($con, $sql);
echo "<h1> 신규 회원 입력 결과 </h1>";
if($ret) {
echo "데이터가 성공적으로 입력됨.";
}
else {
echo "데이터 입력 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
?>
회원 정보 업데이트(UPDATE)
- 회원 정보 수정 페이지 (아직 액션 없음)
vi update.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$sql ="SELECT * FROM userTBL WHERE userID='".$_GET('userID')."'";
$ret = mysqli_query($con, $sql);
if($ret) {
$count = mysqli_num_rows($ret);
if ($count==0) {
echo $_GET('userID')." 아이디의 회원이 없음!
!
!
"."<br>";
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
exit();
}
}
else {
echo "데이터 조회 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
exit();
}
$row = mysqli_fetch_array($ret);
$userID = $row('userID');
$name = $row("name");
$birthYear = $row("birthYear");
$addr = $row("addr");
$mobile1 = $row("mobile1");
$mobile2 = $row("mobile2");
$height = $row("height");
$mDate = $row("mDate");
?>
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<h1> 회원 정보 수정 </h1>
<FORM METHOD="post" ACTION="update_result.php">
아이디 : <INPUT TYPE ="text" NAME="userID" VALUE=<?php echo $userID ?> READONLY> <br>
이름 : <INPUT TYPE ="text" NAME="name" VALUE=<?php echo $name ?>> <br>
출생년도 : <INPUT TYPE ="text" NAME="birthYear" VALUE=<?php echo $birthYear ?>> <br>
지역 : <INPUT TYPE ="text" NAME="addr" VALUE=<?php echo $addr ?>> <br>
휴대폰 국번 : <INPUT TYPE ="text" NAME="mobile1" VALUE=<?php echo $mobile1 ?>> <br>
휴대폰 전화번호 : <INPUT TYPE ="text" NAME="mobile2" VALUE=<?php echo $mobile2 ?>> <br>
신장 : <INPUT TYPE ="text" NAME="height" VALUE=<?php echo $height ?>> <br>
회원가입일 : <INPUT TYPE ="text" NAME="mDate" VALUE=<?php echo $mDate ?> READONLY><br>
<BR><BR>
<INPUT TYPE="submit" VALUE="정보 수정">
</FORM>
</BODY>
</HTML>
스플래시 화면의 회원 수정에 ID를 입력하고 버튼을 누릅니다.
- 회원 정보 수정 결과 (action)
vi update_result.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$userID = $_POST("userID");
$name = $_POST("name");
$birthYear = $_POST("birthYear");
$addr = $_POST("addr");
$mobile1 = $_POST("mobile1");
$mobile2 = $_POST("mobile2");
$height = $_POST("height");
$mDate = $_POST("mDate");
$sql ="UPDATE userTbl SET name="".$name."", birthYear=".$birthYear;
$sql = $sql.", addr="".$addr."", mobile1='".$mobile1."',mobile2='".$mobile2;
$sql = $sql."', height=".$height.", mDate="".$mDate."" WHERE userID='".$userID."'";
$ret = mysqli_query($con, $sql);
echo "<h1> 회원 정보 수정 결과 </h1>";
if($ret) {
echo "데이터가 성공적으로 수정됨.";
}
else {
echo "데이터 수정 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
?>
회원정보 삭제(DELETE)
- 회원 정보 삭제 화면 (아직 액션 없음)
vi delete.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$sql ="SELECT * FROM userTBL WHERE userID='".$_GET('userID')."'";
$ret = mysqli_query($con, $sql);
if($ret) {
$count = mysqli_num_rows($ret);
if ($count==0) {
echo $_GET('userID')." 아이디의 회원이 없음!
!
!
"."<br>";
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
exit();
}
}
else {
echo "데이터 조회 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
echo "<br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
exit();
}
$row = mysqli_fetch_array($ret);
$userID = $row('userID');
$name = $row("name");
?>
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<h1> 회원 삭제 </h1>
<FORM METHOD="post" ACTION="delete_result.php">
아이디 : <INPUT TYPE ="text" NAME="userID" VALUE=<?php echo $userID ?> READONLY> <br>
이름 : <INPUT TYPE ="text" NAME="name" VALUE=<?php echo $name ?> READONLY> <br>
<BR><BR>
위 회원을 삭제하겠습니까?
<INPUT TYPE="submit" VALUE="회원 삭제">
</FORM>
</BODY>
</HTML>
초기화면의 회원탈퇴에 아이디를 입력한 후 버튼을 누르세요.
그러나 아직 아무 작업도 수행되지 않았기 때문에 버튼을 누르면 오류가 발생합니다.
- 회원 삭제 결과 (action)
vi delete_result.php // (New File)
// 붙여넣기
<?php
$con=mysqli_connect("(윈도우 아이피)", "root", "1234", "sqlDB") or die("MariaDB 접속 실패 !
!
");
$userID = $_POST("userID");
$sql ="DELETE FROM userTbl WHERE userID='".$userID."'";
$ret = mysqli_query($con, $sql);
echo "<h1> 회원 삭제 결과 </h1>";
if($ret) {
echo $userID." 회원이 성공적으로 삭제됨..";
}
else {
echo "데이터 삭제 실패!
!
!
"."<br>";
echo "실패 원인 :".mysqli_error($con);
}
mysqli_close($con);
echo "<br><br> <a href="http://kyounggu./m/main.html"> <--초기 화면</a> ";
?>
이제 구성원 제거 버튼을 클릭하십시오.