본문 바로가기
DATABASE/MySQL

[MySQL] 관계형 데이터베이스의 응용 - client와 server, php 실습코드

by sjs_2215 2019. 8. 25.

출처: https://opentutorials.org/course/3161

개발환경 설치 가이드&수련: https://github.com/egoingsb/offline/wiki/database---mysql


1. 관계형 데이터베이스의 응용

 

1-1. client와 server

  • 요청하는 컴퓨터 = CLIENT, MySQL monitor, PHPmyadmin, MySQL workbench
  • 응답하는 컴퓨터 = SERVER, Database server, MySQL Server
  • host
    인터넷에 연결된 머신들 하나하나를 다
    host이름을 적어라 = server의 이름을 적어라
  • 127.0.0.1

= 나 자신을 뜻하는 이름 = 내 컴퓨터에 설치된 mysql server에 접속하겠다는 말

 

  • port

클라이언트가 서버에게 한 웹 페이지를 요청했는데 서버는 수만 개의 서버를 가지고 있음. 이때 특정 port로 요청함.

하나의 컴퓨터에 여러개의 서버를 가지고 있을 때 이를 구별해주는 것이 port

웹 서버는 기본적으로 80 port를 리스닝하고 있음.

이미 mysql깐 후에 또 깔았다면 이미 3306을 쓰고 있기 때문에 3307을 쓰는 상황도 있음 ( 내 상황 )

mysql workbench 쿼리 실행 단축키: Ctrl + Shift + Enter

ㅋㅋㅋ 몸이 기억하고 있는 단축키

 

php와 mysql server, client와 server

 

 

<그림 해석1>

php가 select * ~ 명령어를 mysql server에게 요청하면,

mysql server가 처리된 결과를 php에게 줌.

-> 여기서 php는 mysql server에게 클라이언트

php는 그 결과를 웹 서버가 이해할 수 있게 html로 바꿔서 웹 서버에게 줌.

웹 서버는 그걸 웹 클라이언트에게 줌

 

<그림 해석 2>

client가 요청 > apache가 확인, php이기에 php한테 해석을 맡김 > php가 htdocs에 저장되어있는 topic.php 파일을 열어서 해석 > 필요한 데이터를 mySQL server에 요청 > 데이터를 받고 그 데이터를 apache web server에 보냄 > client에게 전송

 


2. MySQL과 PHP를 이용해서 웹앱 만들기 체험


 

mysql workbench에서 스키마 만들고 테이블 만들기, column도 만들기

 

 

 


 

php 실습 코드 - topic 테이블 안에 있는 리스트를 출력하는 php 코드

 

(htdocs 안에 있음)

 

  • 먼저 html 코드
    =화면에 있는 그대로 출력

<ul> 
<li> mysql </li> 
<li> oracle </li>
</ul>

 

 

  • php코드

 

`<?php ?>` 안에 꼭 넣어야 한다는 점.

<?php 
//mysql server에 접속해
$conn1=mysqli_connect('localhost', 'root', '154045');

//fbin을 사용해
mysqli_select_db($conn1, 'fbin');

//select title from topic;을 전송해
$sql = "SELECT title FROM topic";
$result = mysqli_query($conn1, $sql);

//전송된 결과를 li 태그로 만들어서 출력해 
mysqli_fetch_array($result);
var_dump($row);

mysqli_fetch_array($result);
var_dump($row);

mysqli_fetch_array($result);
var_dump($row);

?>


<ul>
<li> mysql </li>
<li> oracle </li>
</ul>

 

-> fetch_array는 다 주지 않고 한 건씩 줌

만약 데이터가 없으면 null을 출력

 

fetch_array의 다른 방법

while($row = mysqli_fetch_array($result)){
    echo "<li>{$row['title']}</li>";
}

 

Comments