14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL...

25
1 웹 프로그래밍 프로그래밍 및 실습 실습 (Web Programming & Practice) (Web Programming & Practice) MySQL MySQL 연동 연동 문양세 문양세 강원대학교 강원대학교 IT IT대학 대학 컴퓨터과학전공 컴퓨터과학전공 데이터베이스(database), DBMS 처리/관리하고자 하는 정보 혹은 데이터를 모아놓은 저장소 저장된 정보에 의미를 부여하고, 다양한 연산(검색, 갱신 )제공하 데이터베이스 데이터베이스? (1/4) ? (1/4) MySQL 연동 저장된 정보에 의미를 부여하고, 다양한 연산(검색, 갱신 )제공하 는 소프트웨어 시스템 사용자에 의해 지시되는 일련의 연산(transaction)을 효과적이고 정확 하게 처리하는 소프트웨어 시스템 상용 DBMS (Commercial DBMS) Web Programming by Yang-Sae Moon Page 2 Disk-based DBMS: Oracle, Informix, Sybase, UniSQL, MySQL, … Main Memory DBMS: Ten-Times, Altibase, UniSQL, …

Transcript of 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL...

Page 1: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

1

웹웹 프로그래밍프로그래밍 및및 실습실습(Web Programming & Practice)(Web Programming & Practice)g gg g

MySQLMySQL 연동연동

문양세문양세강원대학교강원대학교 ITIT대학대학 컴퓨터과학전공컴퓨터과학전공

데이터베이스(database), DBMS

• 처리/관리하고자 하는 정보 혹은 데이터를 모아놓은 저장소

• 저장된 정보에 의미를 부여하고, 다양한 연산(검색, 갱신 등)을 제공하

데이터베이스데이터베이스? (1/4)? (1/4)MySQL 연동

저장된 정보에 의미를 부여하고, 다양한 연산(검색, 갱신 등)을 제공하

는 소프트웨어 시스템

• 사용자에 의해 지시되는 일련의 연산(transaction)을 효과적이고 정확

하게 처리하는 소프트웨어 시스템

상용 DBMS (Commercial DBMS)

Web Programmingby Yang-Sae MoonPage 2

( )

• Disk-based DBMS: Oracle, Informix, Sybase, UniSQL, MySQL, …

• Main Memory DBMS: Ten-Times, Altibase, UniSQL, …

Page 2: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

2

용어 이해

• 속성(attribute), 필드(field)

이름을 가진 논리적 데이터의 최소 단위 예 나이 필드 이름 속성

데이터베이스데이터베이스? (2/4)? (2/4)MySQL 연동

− 이름을 가진 논리적 데이터의 최소 단위 (예: 나이 필드, 이름 속성)

− 특정 객체(object, entity)의 한 성질의 값

− 테이블(table)의 attribute로 이해할 수 있음

• 레코드(record), 튜플(tuple)

− 논리적으로 서로 연관된 하나 이상의 데이터 필드(항목)들의 집합

Web Programmingby Yang-Sae MoonPage 3

− 엔티티 타입 (예: 학생 = {이름 필드, 학번 필드, 성별 필드, …})

용어 이해 (계속)

• 테이블(table)

레코드(정확히는 레코드 인스턴스)의 집합 (set of records)

데이터베이스데이터베이스? (3/4)? (3/4)MySQL 연동

− 레코드(정확히는 레코드 인스턴스)의 집합 (set of records)

− 관계형 DBMS에서는 대부분의 연관성 있는 데이터를 테이블로 관리함

− 테이블의 예: 학생 테이블, 성적 테이블, 급여 관리 테이블 등

• 인덱스(index), 색인

− 검색하고자 하는 레코드를 빠르게 찾아내기 위하여 별도의 (메모리, 디스크) 구조를 관리

Web Programmingby Yang-Sae MoonPage 4

구조를 관리

− 일반적으로, Unique한 하나의 속성에 대해서 인덱스를 구성함

− 트리 혹은 해싱 등의 인덱스 기술(technique)을 사용함

− 인덱스의 예: 학생 테이블에 대해 “학번” 속성으로 색인을 구성

Page 3: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

3

테이블 구성의 예

데이터베이스데이터베이스? (4/4)? (4/4)MySQL 연동

Attribute(Column)

학번

1243

1257

1332

1334

이름

홍길동

김철수

박영희

이기수

나이

10

20

19

21

본적

강원

경기

충청

전라

Schema

Tuple(Record)Index

Web Programmingby Yang-Sae MoonPage 5

1367

1440

정미영

최미숙

20

21

서울

강원

SQL

• Structured Query Language (, SEQUEL)

• 데이터베이스에서 정보를 얻거나 갱신하기 위한 표준화된 언어

데이터데이터 접근접근 (Data Access) (1/6)(Data Access) (1/6)MySQL 연동

DML (Data Manipulation Language)

• SELECT: 검색 조건에 맞는 데이터(레코드)를 선택(조회)

• INSERT: 새로운 데이터(레코드)를 삽입

• UPDATE: 기존의 데이터(레코드, 속성)를 수정

• DELETE: 기존의 데이터(레코드)를 삭제

Web Programmingby Yang-Sae MoonPage 6

DDL(Data Definition Language)?

• 데이터 형태 및 데이터베이스 자체를 정의하는 언어

• 예: 테이블 생성 및 삭제(create/drop table), 인덱스 생성, DB 생성

Page 4: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

4

MySQL 연동

name price color country

사과 10 빨간색 한국

테이블 예제: fruit 테이블

데이터데이터 접근접근 (Data Access) (2/6)(Data Access) (2/6)

사과 빨간색 한국

배 20 노란색 한국

복숭아 30 분홍색 한국

수박 40 초록색 한국

감 50 주황색 한국

토마토 60 빨간색 미국

바나나 70 노란색 인도네시아

Web Programmingby Yang-Sae MoonPage 7

바나나 70 노란색 인도네시아

키위 80 초록색 호주

파인애플 90 초록색 인도네시아

대추 100 초록색 한국

MySQL 연동데이터데이터 접근접근 (Data Access) (3/6)(Data Access) (3/6)

SELECT

• 특정 테이블에서 원하는 데이터(레코드, 속성)를 검색할 때 사용

SELECT name, price FROM fruit WHERE color = ‘빨간색’;

• 상기 예는 fruit 테이블을 사용하여 색깔(color)이 빨간색인 과일의 이름(name)과 가격

(price)를 가져오는 문장임

• SQL에서 특정 데이터가 문자열로 되어 있으면 작은 따옴표(‘’)로 묶어주어야 하며 숫자는

작은 따옴표로 묶지 않고 그냥 사용

• 상기 SQL 문장의 실행 결과는 다음과 같음

Web Programmingby Yang-Sae MoonPage 8

name price

사과 10

토마토 60

Page 5: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

5

MySQL 연동데이터데이터 접근접근 (Data Access) (4/6)(Data Access) (4/6)

INSERT

• 특정 테이블에 새로운 데이터(레코드)를 삽입할 때 사용

INSERT INTO fruit VALUES (‘멜론’, 110, ‘초록색’, ‘한국’);

• 상기 예는 fruit 테이블에서 “이름은 멜론이고 가격은 110원, 색깔은 초록색이며 원산지

는 한국”인 새로운 레코드를 삽입

• 상기 SQL 문장의 실행 결과는 다음과 같은 레코드가 fruit 테이블에 추가됨

name price color country

Web Programmingby Yang-Sae MoonPage 9

멜론 110 초록색 한국

MySQL 연동데이터데이터 접근접근 (Data Access) (5/6)(Data Access) (5/6)

UPDATE

• 특정 테이블에서 기존 데이터(레코드)의 내용을 수정할 때 사용

UPDATE fruit SET price=120, country=‘미국’ WHERE name=‘멜론’;

• 상기 예는 fruit 테이블에서 “이름(name)이 멜론인 레코드의 가격(price)을 120원으로, 원산지(country)를 미국으로 수정”하는 경우임

• 상기 SQL 문장의 실행 결과, 기존 레코드는 다음과 같이 내용이 변경됨

name price color country

Web Programmingby Yang-Sae MoonPage 10

멜론 120 초록색 미국

Page 6: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

6

MySQL 연동데이터데이터 접근접근 (Data Access) (6/6)(Data Access) (6/6)

DELETE

• 특정 테이블에서 기존 데이터(레코드)를 지울 때 사용

DELETE FROM fruit WHERE name=‘멜론’;

• 상기 예는 fruit 테이블에서 “이름(name)이 멜론인 레코드를 삭제”하는 경우임

• 상기 SQL 문장의 실행 결과, 이름이 멜론인 레코드가 fruit 테이블에서 삭제됨

Web Programmingby Yang-Sae MoonPage 11

MySQL 사용 순서

MySQL MySQL 사용법사용법 (1/6)(1/6)MySQL 연동

mysql_connect() 데이터베이스 접속

mysql_select_db() 사용자 데이터베이스 선택

mysql_query() SQL 명령 실행

Web Programmingby Yang-Sae MoonPage 12

mysql_fetch_row() 실행 결과를 한 튜플(행)씩 가져옴

mysql_close() 데이터베이스 접속 해제

Page 7: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

7

MySQL 연동

mysql_connect

MySQL MySQL 사용법사용법 (2/6)(2/6)

resource mysql_connect (

[string hostname [:port] [:/path/to/socket]

• MySQL이 설치된 hostname에 접근하여 username과 password를 통해 MySQL에 로그인을

수행함

• 성공하면 MySQL link identifier를 리턴함 (다음 단계에서 활용함)

• mysql_close() 를 호출하지 않아도 스크립트의 실행이 끝나면 자동으로 close됨

[, string username [, string password]]])

Web Programmingby Yang-Sae MoonPage 13

MySQL 연동

mysql_select_db

MySQL MySQL 사용법사용법 (3/6)(3/6)

bool mysql_select_db (

string database_name [, resource link_identifier])

• link_identifier 서버에서 database_name의 데이터베이스를 연결함

• 연결에 성공하면 TRUE, 실패하면 FALSE를 리턴함

• 만일 link_identifier가 없으면 자동으로 이전에 열렸던 link_identifier를 이용하여 데이터

베이스를 연결함

Web Programmingby Yang-Sae MoonPage 14

Page 8: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

8

MySQL 연동

mysql_query

MySQL MySQL 사용법사용법 (4/6)(4/6)

resource mysql_query (

string query [, resource link_identifier])

• 지정된 link_identifier를 사용하여 현재 활성화된 데이터베이스에서 주어진 질의문

(query)를 실행함

• 성공하면 TRUE, 실패하면 FALSE를 리턴함

• query에 들어가는 문자열의 마지막에는 세미콜론(;)을 사용하지 않음

Web Programmingby Yang-Sae MoonPage 15

MySQL 연동

mysql_fetch_row

MySQL MySQL 사용법사용법 (5/6)(5/6)

array mysql_fetch_row (resource result)

• 질의문(주로 Select 문)의 수행 결과에 따라, 각각의 레코드(tuple, row)를 차례로 읽어

들이는 함수임

• result로부터 결과 값을 배열로 리턴

• 이 함수를 계속 호출하게 되면 result로부터 다음 row(레코드)를 차례로 읽어 옴

• 더 이상 읽어 올 row가 없으면 FALSE를 리턴

Web Programmingby Yang-Sae MoonPage 16

Page 9: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

9

MySQL 연동

mysql_close

MySQL MySQL 사용법사용법 (6/6)(6/6)

bool mysql_close ([resource link_identifier])

• link_identifier로 연결된 MySQL을 닫음 ( Resource를 반환함)

• 성공하면 TRUE, 실패하면 FALSE를 리턴함

• 만일 link_identifier가 연결되어 있지 않으면 마지막으로 연결된 link_identifier를 닫음

Web Programmingby Yang-Sae MoonPage 17

MySQL 연동

phpMyAdmin

• DB 및 SQL명령을 자세히 알지 않고서도 MySQL에 대한 사용을 용이하게 해주는 유틸리티

• APM을 정상적으로 설치한 경우, 자동적으로 함께 설치됨

phpMyAdmin phpMyAdmin –– 실행실행 및및 로그인로그인 (1/2) (1/2)

실행하기

Web Programmingby Yang-Sae MoonPage 18

Page 10: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

10

MySQL 연동

로그인하기

phpMyAdmin phpMyAdmin –– 실행실행 및및 로그인로그인 (2/2) (2/2)

Web Programmingby Yang-Sae MoonPage 19

root/apmsetup

MySQL 연동

새로운 DB의 이름을 입력하고 만들기를 클릭

phpMyAdmin phpMyAdmin –– 새로운새로운 DB DB 만들기만들기 (1/4) (1/4)

Web Programmingby Yang-Sae MoonPage 20

Page 11: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

11

MySQL 연동

새로운 DB의 생성 결과

phpMyAdmin phpMyAdmin –– 새로운새로운 DB DB 만들기만들기 (2/4) (2/4)

대응되는 SQL Statement

Web Programmingby Yang-Sae MoonPage 21

MySQL 연동

생성된 DB 확인하기

phpMyAdmin phpMyAdmin –– 새로운새로운 DB DB 만들기만들기 (3/4) (3/4)

Web Programmingby Yang-Sae MoonPage 22

Page 12: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

12

MySQL 연동

생성된 DB 확인하기 (결과 화면)

phpMyAdmin phpMyAdmin –– 새로운새로운 DB DB 만들기만들기 (4/4) (4/4)

Web Programmingby Yang-Sae MoonPage 23

MySQL 연동

Table을 만들고자 하는 DB를 선택 (예의 경우 goods)

phpMyAdmin phpMyAdmin –– 새로운새로운 Table Table 만들기만들기 (1/5) (1/5)

Web Programmingby Yang-Sae MoonPage 24

Page 13: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

13

MySQL 연동

만들고자 하는 Table의 이름과 속성(필드) 개수를 입력

phpMyAdmin phpMyAdmin –– 새로운새로운 Table Table 만들기만들기 (2/5) (2/5)

Web Programmingby Yang-Sae MoonPage 25

MySQL 연동

Table을 구성하는 속성의 정보(타입, 크기, 색인 정보 등)를 입력

phpMyAdmin phpMyAdmin –– 새로운새로운 Table Table 만들기만들기 (3/5) (3/5)

Web Programmingby Yang-Sae MoonPage 26

Page 14: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

14

MySQL 연동

Table 생성에 대한 수행 결과

phpMyAdmin phpMyAdmin –– 새로운새로운 Table Table 만들기만들기 (4/5) (4/5)

대응되는 SQL Statement

Web Programmingby Yang-Sae MoonPage 27

MySQL 연동

생성된 Table에 대한 정보 조회 결과

phpMyAdmin phpMyAdmin –– 새로운새로운 Table Table 만들기만들기 (5/5) (5/5)

Web Programmingby Yang-Sae MoonPage 28

Page 15: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

15

MySQL 연동

원하는 Table을 메뉴에서 삽입을 클릭

phpMyAdmin phpMyAdmin –– 레코드레코드 삽입하기삽입하기 (1/4) (1/4)

Web Programmingby Yang-Sae MoonPage 29

MySQL 연동

해당 레코드의 (속성) 값을 입력하고 실행

phpMyAdmin phpMyAdmin –– 레코드레코드 삽입하기삽입하기 (2/4) (2/4)

Web Programmingby Yang-Sae MoonPage 30

Page 16: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

16

MySQL 연동

레코드 생성의 수행에 따른 결과 화면

phpMyAdmin phpMyAdmin –– 레코드레코드 삽입하기삽입하기 (3/4) (3/4)

대응되는 SQL Statement

Web Programmingby Yang-Sae MoonPage 31

MySQL 연동

레코드 생성 반복

phpMyAdmin phpMyAdmin –– 레코드레코드 삽입하기삽입하기 (4/4) (4/4)

Web Programmingby Yang-Sae MoonPage 32

Page 17: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

17

MySQL 연동

원하는 Table을 메뉴에서 검색을 클릭

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (1/6) (1/6)

Web Programmingby Yang-Sae MoonPage 33

MySQL 연동

검색 조건을 입력 (아래 예는 테이블 전체 검색)

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (2/6) (2/6)

Web Programmingby Yang-Sae MoonPage 34

Page 18: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

18

MySQL 연동

테이블 전체 검색의 결과 화면

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (3/6) (3/6)

대응되는 SQL Statement

Web Programmingby Yang-Sae MoonPage 35

MySQL 연동

검색 조건을 입력 (아래 예는 가격 속성에 조건 입력)

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (4/6) (4/6)

Web Programmingby Yang-Sae MoonPage 36

Page 19: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

19

MySQL 연동

가격 속성에 조건을 준 경우의 결과 화면

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (5/6) (5/6)

대응되는 SQL Statement대응되는 SQL Statement

Web Programmingby Yang-Sae MoonPage 37

MySQL 연동

SQL 문장을 직접 입력하는 예제

phpMyAdmin phpMyAdmin –– 레코드레코드 검색하기검색하기 (6/6) (6/6)

Web Programmingby Yang-Sae MoonPage 38

Page 20: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

20

MySQL 연동

가격이 50원 이상인 레코드들의 출력 프로그램 (fruit_mysql.php)

SQLSQL을을 포함한포함한 PHP PHP 프로그램프로그램 예제예제 (1/3)(1/3)

<html>

<body>

<?PHP<?PHP

$conn = mysql_connect (‘localhost’, ‘root’, ‘apmsetup’);

$db_status = mysql_select_db (‘goods’);

if (!$db_status) {

error (“DB_ERROR”);

exit;

}

Web Programmingby Yang-Sae MoonPage 39

$query = “select * from fruit where price >= 50”;

mysql_query("SET NAMES 'euckr'"); // 주의: 한글

$result = mysql_query ($query);

MySQL 연동

가격이 50원 이상인 레코드들의 출력 프로그램 (계속)

SQLSQL을을 포함한포함한 PHP PHP 프로그램프로그램 예제예제 (2/3)(2/3)

print “<table border=1><tr>” .

“<th>이름</th>” .

“<th>가격</th>” .

“<th>색깔</th>” .

“<th>원산지</th></tr>”;

while ($row = mysql_fetch_row ($result)) {

print “<tr><td>” . $row[0] . “</td>” .

“<td>” . $row[1] . “</td>” .

“<td>” . $row[2] . “</td>” .

“<td>” . $row[3] . “</td></tr>”;

Web Programmingby Yang-Sae MoonPage 40

}

print “</table>”;

?>

</body>

</html>

Page 21: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

21

MySQL 연동

가격이 50원 이상인 레코드들의 출력 프로그램 실행 화면

SQLSQL을을 포함한포함한 PHP PHP 프로그램프로그램 예제예제 (3/3)(3/3)

Web Programmingby Yang-Sae MoonPage 41

MySQL 연동

테이블(fruit)에 새로운 레코드를 삽입하는 웹 화면의 구성

fruit1.php

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (1/7)(1/7)

<html>

<body>

<form name=fruit method=post action=“./fruit2.php”>

새로운 데이터를 입력해 주세요<br>

이름: <input type=text name=name><br>

가격: <input type=text name=price><br>

색깔: <input type=text name=color><br>

원산지: <input type=text name=country><br>

<input type=submit value=“입력”>

Web Programmingby Yang-Sae MoonPage 42

<input type=submit value= 입력 >

<input type=reset value=“취소”>

</form>

</body>

</html>

Page 22: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

22

MySQL 연동

fruit1.php의 실행 결과

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (2/7)(2/7)

Web Programmingby Yang-Sae MoonPage 43

MySQL 연동

삽입 프로그램: fruit2.php

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (3/7)(3/7)

<html><body><?PHP$conn = mysql connect (‘localhost’ ‘root’ ‘apmsetup’);$conn mysql_connect ( localhost , root , apmsetup );$db_status = mysql_select_db (‘goods’);if (!$db_status) {

error (“DB_ERROR”);exit;

}$query = “INSERT INTO fruit VALUES “ .

“(‘$name’, $price, ‘$color’, ‘$country’)”;mysql_query("SET NAMES 'euckr'"); // 한글 문제

$result = mysql_query ($query); if ($ lt)

Web Programmingby Yang-Sae MoonPage 44

if ($result)print “입력되었습니다.<br>”;

elseprint “입력되지 않았습니다.<br>”;

?></body></html>

Page 23: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

23

MySQL 연동

삽입 프로그램(fruit2.php)의 실행 결과

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (4/7)(4/7)

Web Programmingby Yang-Sae MoonPage 45

MySQL 연동

검색을 통한 삽입 결과 확인 (fruit_mysql.php)

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (5/7)(5/7)

Web Programmingby Yang-Sae MoonPage 46

Page 24: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

24

MySQL 연동

fruit_mysql.php의 개선 (Sorting)

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (6/7)(6/7)

..

..

..

$query = “select * from fruit where price >= 50 order by price”;

$result = mysql_query ($query);

..

..

..

Web Programmingby Yang-Sae MoonPage 47

MySQL 연동

fruit_mysql.php의 개선 (Sorting) 결과 화면

MySQLMySQL을을 이용한이용한 웹웹 프로그래밍프로그래밍 (7/7)(7/7)

Web Programmingby Yang-Sae MoonPage 48

Page 25: 14. MySQL 연동 - Kangwoncs.kangwon.ac.kr/~ysmoon/courses/2010_1/wp/14.pdf · 2016-06-02 · MySQL 연동 삽입프로그램(fruit2.php)의실행결과 MySQL을을이용한이용한웹웹프로그래밍프로그래밍(4/7)

25

MySQL 연동Homework #10 (Homework #10 (실습실습 #8)#8)

Web Programmingby Yang-Sae MoonPage 49