MariaDB – PHP를 사용한 웹 및 데이터베이스 연결

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에 연결하고 사용자를 관리해 봅시다.


root/%를 제거하자

위와 같이 새 루트를 만들고 모든 권한을 부여하고 저장하십시오.
// 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

방문할 때


이미 존재하기 때문에 sqldb를 생성할 수 없습니다.

HeidiSQL로 돌아가서 sqldb를 삭제해 봅시다.


제거했다가 다시 연결한 후



HeidiSQL에서도 생성됩니다.

연동

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) 회원문의”를 클릭하시면


링크를 통해 PHP에 액세스하십시오.

새 구성원 입력(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> "; ?>

편집할 내용을 입력합니다.

그러나 ID는 기본 키이므로 수정할 수 없도록 설정됩니다.


성공적인 수리

수정 사항이 실제로 병합되었습니다.


회원정보 삭제(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>

초기화면의 회원탈퇴에 아이디를 입력한 후 버튼을 누르세요.


또한 존재하지 않는 ID의 경우 실패 화면이 나타납니다.


방금 만든 “123”을 입력합니다.

그러나 아직 아무 작업도 수행되지 않았기 때문에 버튼을 누르면 오류가 발생합니다.

- 회원 삭제 결과	(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> "; ?>

이제 구성원 제거 버튼을 클릭하십시오.


성공적으로 삭제되었습니다.


데이터베이스에도 올바르게 반영됩니다.