-
(15) WEB3 - PHP & MySQL : 1.수업소개 - YouTube
하나의 파일 안에 본문, 이름, 시간, 방문자의 댓글 등을 저장하고 싶고 글 목록 순서 정렬 등을 하고 싶어졌다. 정보의 양과 종류, 사용자의 증가로 문제점이 많이 생겨났다. 데이터베이스를 이용하면 문제를 해결할 수 있다.
웹브라우저의 사용자가 index.php 라고 입력하면 웹브라우저는 index.php라는 파일을 가진 웹서버에 접속한다. 웹서버는 처리할 수 없으므로 php라는 프로그램에 index.php 의 처리를 위임한다. php 는 파일을 읽고 해석해 동작한다. 그런데 php 코드 중에 mysql 함수가 포함되어있으면 php는 mysql 서버에 sql 문을 넘겨준다. mysql 서버는 그 sql문에 적힌대로 동작해 그 결과를 php 에 알려주면 php는 순수한 html 코드를 생성해준다. 웹서버는 그 html 코드를 웹브라우저에 전송하는 것이다.
서버에는 웹서버와 php, mysql이라는 소프트웨어가 있다.
즉 데이터베이스가 가진 데이터를 효율적으로 관리할 수 있다는 점과 웹의 접근성으로 현대적인 애플리케이션을 만들 수 있다. php는 이 맥락에서 웹과 mysql이라는 데이터베이스를 붙이는 역할을 하게 되며 이런 기술을 미들웨어 라고도 부른다.
- mysqli_query: 데이터베이스가 입력값을 받아 php에게 응답하면 php가 html 코드로 만들어준다.
- exit: php 종료
- php-mysql 원리
사용자가 index. php라는 파일을 접속하면 파일이 웹서버에게 가고 웹서버는 php에게 요청한다. php는 명령어들을 이용해 mysql 서버에서 여러가지 sql문을 전송한다. 이 맥락에서 php는 mysql 서버에 대해 클라이언트로 동작한다. mysql이 데이터를 php에게 돌려주면 php는 정보를 받아 최종적으로 웹브라우저가 해석할 수 있는 순수한 html을 프로그래밍적으로 동적으로 생산해 웹서버에게 전달하면 웹서버가 웹브라우저에게 전송한다.
순수한 웹페이지를 웹 브라우저에게 전송하는 역할은 웹 서버와 mysql이라는 데이터베이스 사이에서 php는 미들웨어라고도 한다.
저장할 표는 topic.
id, title, description, created 를 가지도록 만들어보자.
- id는 자동으로 증가
- title은 짧은 텍스트
- description은 긴 텍스트
- created는 날짜 등
2. 테이블 생성
id를 primary key 로 하면 생기는 장점
- id 값 중복성 제거
- 데이터를 id 값을 바탕으로 빠르게 데려올 수 있음
- desc topic: topic의 구조를 보여줌
(15) WEB3 - PHP & MySQL : 4.PHP Client로서 MySQL - YouTube
mysql 서버를 제어하려면 mysql monitor로 제어했다.
이 둘의 관계는, mysql모니터에 직접 sql문을 입력하면 mysql 서버에 sql문이 요청되고 그 결과를 mysql 서버가 모니터에게 응답해준다.
mysql모니터는 mysql server에 대해 클라이언트이다.
php도 mysql서버에 대해 클라이언트 역할로 동작할 수 있다. php에서 제공하는 함수를 이용하면 php가 클라이언트가 되어서 mysql 서버에 sql문을 전송하고 받아와서 작업을 처리할 수 있다.
(15) WEB3 - PHP & MySQL : 5.MySQL API 찾기 - YouTube
php를 이용해 mysql에 접속하는 방법으로 API 중 PDO_MySQL 를 사용을 추천한다.
강의에서는 mysqli를 사용한다.
mysqli_connect("localhost") 에서 큰따옴표 사이에는 , 를 기준으로
1. mysql이 설치된 컴퓨터의 도메인이나 ip 주소
2. 사용자 이름
3. mysql 비밀번호
4. 데이터베이스 이름
(15) WEB3 - PHP & MySQL : 6.2.mysqli_query - YouTube
mysql_query을 사용한다.
에러가 나서
INSERT INTO topic (title, description, created) VALUES('MySQL', 'MySQL is ..', NOW()); 를 직접 입력해주었는데, 10강에서 코드를 써보니 해결되었다.
명령프롬프트에서도 입력하면 알 수 있다.
mysqli_query($conn, $sql); 을 사용하면 어떤 에러가 나왔는지 쉽게 알 수 있다.
+
(15) WEB3 - PHP & MySQL : 7.활용 - 글생성 - YouTube
form action="process_create.php" 를 통해 사용자가 입력한 정보 전송하게 한다.
데이터 전송 시 post 방식으로 진행한다.
잘 전송되었는지 확인하기 위해 새 파일을 만든다.
sql문 작성