출처: 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>";
}
'DATABASE > MySQL' 카테고리의 다른 글
[MySQL] 관계형 데이터 모델링 2 (논리적 모델링) - 정규화 (0) | 2019.08.29 |
---|---|
[MySQL] 관계형 데이터 모델링 3 (물리적 모델링) - 역정규화, 분석, 성능 개선 하는 법 (0) | 2019.08.28 |
[MySQL] 관계형 데이터 모델링 2 (논리적 모델링) - 1:1, 1:N, N:M 관계 맵핑하기 (0) | 2019.08.26 |
[MySQL] 관계형 데이터 모델링 1 (개념적 모델링) - join과 entity relationship diagram (0) | 2019.08.25 |
[MySQL] 관계형 데이터베이스 소개와 기본 사용법: MySQL의 생성, 읽기, 수정, 삭제 (0) | 2019.08.21 |
Comments