SlideShare a Scribd company logo
Web Study 05
PHP - MySQL 연동
Copyright© 2015 by YoWu. All rights reserved.
http://luckyyowu.tistory.com (uyu423@gmail.com)
교양 : index 페이지
• 사용자가 특정 사이트(ex. http://cukwiki.net/~study)에 페이지를
지정하지 않고 접속했을 때 나타나는 기본 페이지
• index.php / index.html / ...
• ex) http://cukwiki.net/~uyu423
• ex) http://cukwiki.net/~uyu423/board
목
• PHP - MySQL
• 연결 & 종료
• Database 선택
• Query 전송
• Query 실행 결과 저장
• or die()
• DB 에러 확인
• DB 사용 페이지 구성
PHP - MySQL
• PHP 에서는 MySQL 연결을 위한 함수와 기능을 제공
• 크게 함수 지향, 객체 지향 두가지 방법이 있다.
• 함수 지향 : $db = mysqli_connect();
• 객체 지향 : $db = new mysqli();
• 스터디에서는 함수 지향 방식을 사용
• PHP 4 이하의 일반 mysql_* 함수와 PHP 5 이상부터 제공되는 개선된
mysqli_* 함수가 있다.
PHP - MySQL 연결 & 종료
• mysqli_connect("DB_ADDR", "DB_USER", "DB_PW", ["DB_NAME"]);
• PHP에서 MySQL 로 접속
• mysqli_close(연결 식별자);
• 연결 식별자가 가르키는 MySQL DB 로 접속된 연결 해제
• 연결 식별자 생략 시 가장 최근에 연결한 서버와 연결 해제
PHP - MySQL DB 선택
• mysqli_select_db("DB_NAME", [연결 식별자]);
• 사용할 DB 선택
• 연결 식별자 생략시 마지막으로 연결한 DB 사용
예제 - 1
PHP - MySQL 쿼리 전송
• mysqli_query(연결 식별자, "QUERY");
• MySQL 에게 query문 실행시키는 함수
• 출력하는 쿼리문(SELECT, SHOW…) 의 경우 성공 시 해당 자원이
반환됨
• 실행하는 쿼리문(INSERT,UPDATE…) 의 경우 성공 시
논리값(true/false) 반환
PHP - MySQL 반환 자원 사용
• mysqli_fetch_array(리소스 결과);
• DB에서 실행 결과를 가져오는 함수
• 결과를 한 행씩 가져와서 배열 형태로 변환
• Ex) $row['num'], $row[0]
PHP 교양 : or die()
• or 명령
• 앞에서 실행한 함수에서 에러가 발생했을 경우 뒤에 나오는 함수
실행
•die(message)
• exit() 함수와 동일
• Message 를 출력해주고 종료함
PHP - MySQL 에러 확인
• mysqli_connect_error();
• DB 연결시(mysqli_connect) 발생한 에러 확인
• mysqli_error(연결 식별자);
• DB 사용시(쿼리 전송 등) 발생한 에러 확인
예제 - 1.1 (dbconn.php)
예제 - 2
DB사용 페이지를 어떻게 구성하지?
• DB에 값을 입력하거나(INSERT) 수정(UPDATE, DELETE) 할 때는
왠만하면 다음의 규칙을 지킨다.
데이터
입력 페이지
(html, php)
DB 작업
처리 페이지
(php)
처리 결과
확인 페이지
(html, php)
예제 - 3 (db_first.php)
예제 - 3 (db_second.php)
실습
• 다음 페이지(방명록) 구현
• http://cukwiki.net/~uyu423/study/php/db_prac01.php
create table guest (
num int unsigned not null primary key auto_increment,
name varchar(20) not null,
cont text not null,
date datetime not null );
과제
회원가입 페이지 완성 (회원가입시 DB에 정보 저장, 암호화)
• 로그인 페이지 완성 (로그인시 DB에서 확인, 세션 생성)
• 로그인 - 회원가입 - 방명록(실습) 연동 및 Bootstrap으로 꾸미기
• 방명록은 로그인한 사람만 접근 가능
• 글쓴이 정보는 로그인한 회원정보의 기본키를 사용해 조회, 사용
• 페이지는 데스크탑 / 모바일에서 반응형으로 작동해야함
• nl2br(), trim(), htmlspecialchars() 함수 조사하고 방명록 페이지에 사용

More Related Content

What's hot (20)

PDF
[Week2] 데이터 스크래핑
neuroassociates
 
PPTX
Selenium을 이용한 동적 사이트 크롤러 만들기
Gyuhyeon Jeon
 
PDF
Class10
Yoonwhan Lee
 
PDF
JSON 데이터를 DB에 넣고 사용하고 싶다
I Goo Lee
 
PDF
16 데이터 저장과 사용
운용 최
 
PDF
서울대학교 IAB 강의 Pytorch(파이토치) CNN 실습 수업
Hyunwoo Kim
 
PPTX
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
HeeJung Hwang
 
PDF
Elasticsearch server Chapter5
Mungyu Choi
 
PDF
웹 개발 스터디 02 - javascript, bootstrap
Yu Yongwoo
 
PDF
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XpressEngine
 
PPTX
엘라스틱 서치 세미나
종현 김
 
PPTX
검색 서비스 간략 교육
Rjs Ryu
 
PPTX
Python study 1강 (오픈소스컨설팅 내부 강의)
정명훈 Jerry Jeong
 
PDF
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
Cheol Kang
 
PDF
Ksug2015 jpa5 스프링과jpa
Younghan Kim
 
PPTX
Tadpole db hub-monitoring
cho hyun jong
 
PPTX
Hacosa j query 3th
Seong Bong Ji
 
PPTX
141118 최창원 웹크롤러제작
Changwon Choe
 
PPTX
Node.js를 활용한 웹 크롤링(Crawling)
Jeong-gyu Kim
 
PDF
게이트단의 보안
Choonghyun Yang
 
[Week2] 데이터 스크래핑
neuroassociates
 
Selenium을 이용한 동적 사이트 크롤러 만들기
Gyuhyeon Jeon
 
Class10
Yoonwhan Lee
 
JSON 데이터를 DB에 넣고 사용하고 싶다
I Goo Lee
 
16 데이터 저장과 사용
운용 최
 
서울대학교 IAB 강의 Pytorch(파이토치) CNN 실습 수업
Hyunwoo Kim
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
HeeJung Hwang
 
Elasticsearch server Chapter5
Mungyu Choi
 
웹 개발 스터디 02 - javascript, bootstrap
Yu Yongwoo
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XpressEngine
 
엘라스틱 서치 세미나
종현 김
 
검색 서비스 간략 교육
Rjs Ryu
 
Python study 1강 (오픈소스컨설팅 내부 강의)
정명훈 Jerry Jeong
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
Cheol Kang
 
Ksug2015 jpa5 스프링과jpa
Younghan Kim
 
Tadpole db hub-monitoring
cho hyun jong
 
Hacosa j query 3th
Seong Bong Ji
 
141118 최창원 웹크롤러제작
Changwon Choe
 
Node.js를 활용한 웹 크롤링(Crawling)
Jeong-gyu Kim
 
게이트단의 보안
Choonghyun Yang
 

Similar to 웹 개발 스터디 01 - PHP, MySQL 연동 (20)

PDF
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
Yu Yongwoo
 
PPTX
10주차 php 사용하기-iii
Yoonwhan Lee
 
PDF
현대고등학교 PHP 강의 - 5차시 (설리번 프로젝트)
Ukjae Jeong
 
PPTX
Unity cookbook 18
Jihun Soh
 
PPTX
Web vulnerability seminar2
Sakuya Izayoi
 
PDF
성공적인웹프로그래밍
dgmong
 
PPTX
HTML Form과 배열
Yoonwhan Lee
 
PDF
[APM] Homepage bbs
Kim Heejin
 
PPTX
Web vulnerability seminar2
Sakuya Izayoi
 
PDF
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)
Ukjae Jeong
 
PPTX
제 2주차. PHP 기초
Yoonwhan Lee
 
PDF
12주차 간단한 방명록 제작 - 두번째
Yoonwhan Lee
 
PDF
문돌이가 가르치는 서버사이드 PHP
동현 조
 
PDF
Web vulnerability seminar1
Sakuya Izayoi
 
PPTX
PHP에서 객체와 데이터 연결 유지
Yoonwhan Lee
 
PDF
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
성일 한
 
PPTX
PHP 함수와 제어구조
Yoonwhan Lee
 
PPTX
PHP 기초 문법
Yoonwhan Lee
 
PDF
php 시작하기
Yoonwhan Lee
 
PDF
[나만의블로그개발하기] 02 서버 그리고 데이터베이스
설리번 프로젝트
 
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
Yu Yongwoo
 
10주차 php 사용하기-iii
Yoonwhan Lee
 
현대고등학교 PHP 강의 - 5차시 (설리번 프로젝트)
Ukjae Jeong
 
Unity cookbook 18
Jihun Soh
 
Web vulnerability seminar2
Sakuya Izayoi
 
성공적인웹프로그래밍
dgmong
 
HTML Form과 배열
Yoonwhan Lee
 
[APM] Homepage bbs
Kim Heejin
 
Web vulnerability seminar2
Sakuya Izayoi
 
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)
Ukjae Jeong
 
제 2주차. PHP 기초
Yoonwhan Lee
 
12주차 간단한 방명록 제작 - 두번째
Yoonwhan Lee
 
문돌이가 가르치는 서버사이드 PHP
동현 조
 
Web vulnerability seminar1
Sakuya Izayoi
 
PHP에서 객체와 데이터 연결 유지
Yoonwhan Lee
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
성일 한
 
PHP 함수와 제어구조
Yoonwhan Lee
 
PHP 기초 문법
Yoonwhan Lee
 
php 시작하기
Yoonwhan Lee
 
[나만의블로그개발하기] 02 서버 그리고 데이터베이스
설리번 프로젝트
 
Ad

More from Yu Yongwoo (17)

PDF
2018 종합선물세트 for 취준생
Yu Yongwoo
 
PDF
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
Yu Yongwoo
 
PDF
개발자가 되기전 누군가 알려주면 좋았을 모든 것들
Yu Yongwoo
 
PDF
웹 개발 스터디 01 - HTML, CSS
Yu Yongwoo
 
PDF
C 언어 스터디 05 - 파일 입출력
Yu Yongwoo
 
PDF
C 언어 스터디 04 - 구조체, 동적할당
Yu Yongwoo
 
PDF
C 언어 스터디 03 - 배열, 포인터
Yu Yongwoo
 
PDF
C 언어 스터디 02 - 제어문, 반복문, 함수
Yu Yongwoo
 
PDF
C 언어 스터디 01 - 기초
Yu Yongwoo
 
PDF
자바 서블릿과 세션 (Java Servlet, Session)
Yu Yongwoo
 
PDF
Bootstrap 기초, JSP Include
Yu Yongwoo
 
PDF
세션 하이재킹
Yu Yongwoo
 
PDF
리눅스 소켓 프로그래밍 기초
Yu Yongwoo
 
PDF
SSH Bruteforce 공격 실제 사례 분석
Yu Yongwoo
 
PDF
소프트웨어 공학 (최종 설계 명세서)
Yu Yongwoo
 
PPTX
'Database Design' Term Project initial Proposal Presentation (Korean)
Yu Yongwoo
 
PDF
2015_YoWu_SSM_Apply_PT
Yu Yongwoo
 
2018 종합선물세트 for 취준생
Yu Yongwoo
 
나도 내가 뭘 말해야되는지 잘 모르겠어 (본격 스타트업 환상 부수기)
Yu Yongwoo
 
개발자가 되기전 누군가 알려주면 좋았을 모든 것들
Yu Yongwoo
 
웹 개발 스터디 01 - HTML, CSS
Yu Yongwoo
 
C 언어 스터디 05 - 파일 입출력
Yu Yongwoo
 
C 언어 스터디 04 - 구조체, 동적할당
Yu Yongwoo
 
C 언어 스터디 03 - 배열, 포인터
Yu Yongwoo
 
C 언어 스터디 02 - 제어문, 반복문, 함수
Yu Yongwoo
 
C 언어 스터디 01 - 기초
Yu Yongwoo
 
자바 서블릿과 세션 (Java Servlet, Session)
Yu Yongwoo
 
Bootstrap 기초, JSP Include
Yu Yongwoo
 
세션 하이재킹
Yu Yongwoo
 
리눅스 소켓 프로그래밍 기초
Yu Yongwoo
 
SSH Bruteforce 공격 실제 사례 분석
Yu Yongwoo
 
소프트웨어 공학 (최종 설계 명세서)
Yu Yongwoo
 
'Database Design' Term Project initial Proposal Presentation (Korean)
Yu Yongwoo
 
2015_YoWu_SSM_Apply_PT
Yu Yongwoo
 
Ad

웹 개발 스터디 01 - PHP, MySQL 연동

  • 1. Web Study 05 PHP - MySQL 연동 Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])
  • 2. 교양 : index 페이지 • 사용자가 특정 사이트(ex. http://cukwiki.net/~study)에 페이지를 지정하지 않고 접속했을 때 나타나는 기본 페이지 • index.php / index.html / ... • ex) http://cukwiki.net/~uyu423 • ex) http://cukwiki.net/~uyu423/board
  • 3. 목 • PHP - MySQL • 연결 & 종료 • Database 선택 • Query 전송 • Query 실행 결과 저장 • or die() • DB 에러 확인 • DB 사용 페이지 구성
  • 4. PHP - MySQL • PHP 에서는 MySQL 연결을 위한 함수와 기능을 제공 • 크게 함수 지향, 객체 지향 두가지 방법이 있다. • 함수 지향 : $db = mysqli_connect(); • 객체 지향 : $db = new mysqli(); • 스터디에서는 함수 지향 방식을 사용 • PHP 4 이하의 일반 mysql_* 함수와 PHP 5 이상부터 제공되는 개선된 mysqli_* 함수가 있다.
  • 5. PHP - MySQL 연결 & 종료 • mysqli_connect("DB_ADDR", "DB_USER", "DB_PW", ["DB_NAME"]); • PHP에서 MySQL 로 접속 • mysqli_close(연결 식별자); • 연결 식별자가 가르키는 MySQL DB 로 접속된 연결 해제 • 연결 식별자 생략 시 가장 최근에 연결한 서버와 연결 해제
  • 6. PHP - MySQL DB 선택 • mysqli_select_db("DB_NAME", [연결 식별자]); • 사용할 DB 선택 • 연결 식별자 생략시 마지막으로 연결한 DB 사용
  • 8. PHP - MySQL 쿼리 전송 • mysqli_query(연결 식별자, "QUERY"); • MySQL 에게 query문 실행시키는 함수 • 출력하는 쿼리문(SELECT, SHOW…) 의 경우 성공 시 해당 자원이 반환됨 • 실행하는 쿼리문(INSERT,UPDATE…) 의 경우 성공 시 논리값(true/false) 반환
  • 9. PHP - MySQL 반환 자원 사용 • mysqli_fetch_array(리소스 결과); • DB에서 실행 결과를 가져오는 함수 • 결과를 한 행씩 가져와서 배열 형태로 변환 • Ex) $row['num'], $row[0]
  • 10. PHP 교양 : or die() • or 명령 • 앞에서 실행한 함수에서 에러가 발생했을 경우 뒤에 나오는 함수 실행 •die(message) • exit() 함수와 동일 • Message 를 출력해주고 종료함
  • 11. PHP - MySQL 에러 확인 • mysqli_connect_error(); • DB 연결시(mysqli_connect) 발생한 에러 확인 • mysqli_error(연결 식별자); • DB 사용시(쿼리 전송 등) 발생한 에러 확인
  • 12. 예제 - 1.1 (dbconn.php)
  • 14. DB사용 페이지를 어떻게 구성하지? • DB에 값을 입력하거나(INSERT) 수정(UPDATE, DELETE) 할 때는 왠만하면 다음의 규칙을 지킨다. 데이터 입력 페이지 (html, php) DB 작업 처리 페이지 (php) 처리 결과 확인 페이지 (html, php)
  • 15. 예제 - 3 (db_first.php)
  • 16. 예제 - 3 (db_second.php)
  • 17. 실습 • 다음 페이지(방명록) 구현 • http://cukwiki.net/~uyu423/study/php/db_prac01.php create table guest ( num int unsigned not null primary key auto_increment, name varchar(20) not null, cont text not null, date datetime not null );
  • 18. 과제 회원가입 페이지 완성 (회원가입시 DB에 정보 저장, 암호화) • 로그인 페이지 완성 (로그인시 DB에서 확인, 세션 생성) • 로그인 - 회원가입 - 방명록(실습) 연동 및 Bootstrap으로 꾸미기 • 방명록은 로그인한 사람만 접근 가능 • 글쓴이 정보는 로그인한 회원정보의 기본키를 사용해 조회, 사용 • 페이지는 데스크탑 / 모바일에서 반응형으로 작동해야함 • nl2br(), trim(), htmlspecialchars() 함수 조사하고 방명록 페이지에 사용