0장 MySQL과 PHP의 연동_1

Download Report

Transcript 0장 MySQL과 PHP의 연동_1

Chapter 08. MySQL과 PHP의 연동
mysql_select_db( )
mysql_connect( )
DB
DB
mysql_close( )
1/48
Chapter 08. MySQL과 PHP의 연동
Section 01 / MySQL 접속과 종료
 PHP에서 MySQL에 접속하기 위해서 사용되는 함수는 ‘mysql_connect( )’함수
이고
 mysql의 접속을 종료하는 함수는 ‘mysql_close( )’함수이며, 사용 형식은 다음
과 같다.
 ‘mysql_connect( )’함수를 사용하여 mysql에 성공적으로 접속되면, 식별자 번
호가 반환되고
 ‘mysql_close( )’함수는 접속된 mysql의 연결을 종료하는 함수이다.
2/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-1.php] mysql_connect( )함수로 mysql 접속과 종료하기
3/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-1.php] mysql_connect( )함수로 mysql 접속과 종료하기
4/48
Chapter 08. MySQL과 PHP의 연동
 [ex 8-1]에서 변수 ‘$good=mysql_connect(“localhost”, “root”, “123456”);’에
서 원래의 비밀번호 ‘123456’이 아닌
 ‘000000’(숫자 0)으로 바꾸어 실행하게 되면 다음과 같은 에러 메시지가 출력
된다.
5/48
Chapter 08. MySQL과 PHP의 연동
Section 02 / PHP에서 데이터베이스 선택
 PHP에서 데이터베이스를 선택할 때 사용하는 함수는 ‘mysql_select_db( )’함수
이며, 사용형식은 다음과 같다.
 선택할 데이터베이스가 관리자 계정인 ‘root’에 존재하는지를 먼저 확인하기
위해 프롬프트 창에서 다음과 같이 입력한다.
6/48
Chapter 08. MySQL과 PHP의 연동
만약, 데이터베이스의 전체 목록에서 선택할 ‘study_db’ 데이터베이스가 없
다면 ‘CREATE DATABASE study_db’명령으로 데이터베이스를 생성한다.
7/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-2.php] mysql_select_db( )함수로 데이터베이스 선택
mysql에 접속할 비밀번호가 틀리면
에러메시지 출력
mysql에 접속된 리소스 ID 출력
8/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-2.php] mysql_select_db( )함수로 데이터베이스 선택
9/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-2.php] mysql_select_db( )함수로 데이터베이스 선택  접속 비밀번호를 틀리게
▼ mysql에 접속하는 비밀번호가 틀리게 입력되었을 경우의 화면
10/48
Chapter 08. MySQL과 PHP의 연동
Section 03 / PHP에서 데이터베이스 질의
 PHP에서의 데이터베이스 질의에 사용되는 함수는 ‘mysql_query( )’ 함수로
SQL 문법에 의해 작성된
 질의, 접속을 식별하는 식별자(변수명)를 매개변수로 받아 질의를 수행한다.
11/48
Chapter 08. MySQL과 PHP의 연동
3.1 테이블 생성과 레코드 삽입
 관리자 계정인 ‘root’에 존재하는 ‘study_db’ 데이터베이스에 고객관리를 위한
테이블 ‘guest’를 생성한다.
12/48
Chapter 08. MySQL과 PHP의 연동
(1) 테이블 생성 (CREATE)
• 새로운 ‘guest’ 테이블을 만들기 위한 SQL 명령은 다음과 같다.
13/48
Chapter 08. MySQL과 PHP의 연동
(2) 레코드 삽입 (INSERT)
• 변수 ‘$sql’ 을 선언하여 레코드를 삽입하고, mysql_query( ) 함수로 질의문을
수행한다.
14/48
Chapter 08. MySQL과 PHP의 연동
 다음 예제는 ‘mysql_query( )’함수를 이용하여 ‘study_db’ 데이터베이스에 ‘geust’
테이블을 생성하고 5명의 레코드를 삽입하는 예제이다.
▣ [ex8-3.php] mysql_query( )함수로 테이블 생성하고 레코드 삽입
15/48
Chapter 08. MySQL과 PHP의 연동
16/48
Chapter 08. MySQL과 PHP의 연동
17/48
Chapter 08. MySQL과 PHP의 연동
18/48
Chapter 08. MySQL과 PHP의 연동
• [ex8-3.php] 프로그램을 웹 브라우저 창에서 [새로고침]을 클릭하면 다음과 같
은 화면이 나타난다. 그 이유는 이미 ‘guest’ 테이블이 생성되어 있기 때문이다.
19/48
Chapter 08. MySQL과 PHP의 연동
(3) MySQL에서 테이블 생성 확인
• 예제 [ex8-3]에서 생성된 ‘guest’ 테이블이 ‘study_db’ 데이터베이스 테이블로
생성되었는지를 프롬프트 창에서 확인한다.
20/48
Chapter 08. MySQL과 PHP의 연동
• 프롬프트 창에서 ‘DESC’ 명령으로 ‘guest’ 테이블의 구조를 확인한다.
21/48
Chapter 08. MySQL과 PHP의 연동
(4) MySQL에서 레코드 삽입 확인
• ‘study_db’ 데이터베이스의 ‘guest’ 테이블에 5명의 데이터가 입력되었는지를
확인하기 위해 다음과 같이 입력한다.
22/48
Chapter 08. MySQL과 PHP의 연동
• 5명의 레코드가 삽입된 것을 확인하였으면, 다음 예제 [ex8-4]의 실습을 위해
생성된 ‘guest’ 테이블을 삭제한다.
23/48
Chapter 08. MySQL과 PHP의 연동
• ‘guest’ 테이블을 삭제하는 이유는 ‘study_db’ 데이터베이스에 이미 작성된
테이블 ‘guest’가 있으면 다음 예제 [ex8-4]에서 중복 수행되기 때문이다.
• 예제 [ex8-3]은 테이블의 생성과 레코드의 삽입을 한꺼번에 수행하는 프로
그램이라 좀 복잡하다.
• 테이블의 생성과 레코드의 삽입을 따로 따로 프로그래밍 또한 가능하며,
다음 예제는 테이블의 생성만을 위한 프로그램이다.
24/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-4.php] mysql_query( )함수로 테이블 생성
25/48
Chapter 08. MySQL과 PHP의 연동
26/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-4.php] mysql_query( )함수로 테이블 생성
27/48
Chapter 08. MySQL과 PHP의 연동
(5) MySQL에서 ‘guest’테이블 존재 확인
• 프롬프트 창에서 ‘guest’ 테이블이 생성된 것을 확인할 수 있다.
28/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-5.php] mysql_query( )함수로 5명의 레코드 삽입
29/48
Chapter 08. MySQL과 PHP의 연동
30/48
Chapter 08. MySQL과 PHP의 연동
31/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-5.php] mysql_query( )함수로 5명의 레코드 삽입
32/48
Chapter 08. MySQL과 PHP의 연동
(6) MySQL에서 레코드 삽입 확인
• 프롬프트 창에서 ‘guest’ 테이블에 5명의 레코드가 삽입되었는지를 확인하기
위해 ‘study_db’ 데이터베이스로 mysql에 접속한다.
33/48
Chapter 08. MySQL과 PHP의 연동
3.2 레코드와 필드의 개수 구하기
(1) 레코드의 개수 구하기 : mysql_num_rows( )함수
• 테이블에 저장된 레코드의 전체 개수를 구하기 위해 사용되는 함수는 ‘mysql
_num_rows( )’함수로 사용형식은 다음과 같다.
34/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-6.php] mysql_num_rows( )함수로 레코드 개수 구하기
35/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-6.php] mysql_num_rows( )함수로 레코드 개수 구하기
36/48
Chapter 08. MySQL과 PHP의 연동
(2) 필드의 개수 구하기 : mysql_num_fields( )함수
• 테이블에 존재하는 필드의 전체 개수를 구하기 위해 사용되는 함수는 ‘mysql
_num_fields( )’ 함수로 사용형식은 다음과 같다.
37/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-7.php] mysql_num_fields( )함수로 필드 개수 구하기
38/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-7.php] mysql_num_fields( )함수로 필드 개수 구하기
예제 [ex8-6]과 예제 [ex8-7]의 차이점은 레코드를 구하는 ‘mysql_num_rows( )’함수
의 사용과 필드의 개수를 구하는 ‘mysql_num_fields( )’함수의 사용에 있다.
39/48
Chapter 08. MySQL과 PHP의 연동
3.3 레코드 불러오기
(1) 레코드를 하나씩 호출 : mysql_fetch_row( ), mysql_fetch_array( )함수
• 테이블에 저장되어 있는 전체 레코드 중에서 하나의 레코드 단위로 호출할
때 사용되는 함수는 ‘mysql_fetch_row( )’함수이다.
<사용 형식>
• 같은 방법이지만 배열로 불러올 때는 ‘mysql_fetch_array( )’함수를 사용한다.
40/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-8.php] mysql_fetch_row( )함수로 레코드 불러오기
41/48
Chapter 08. MySQL과 PHP의 연동
42/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-8.php] mysql_fetch_row( )함수로 레코드 불러오기
43/48
Chapter 08. MySQL과 PHP의 연동
(2) 특정 레코드 호출 : mysql_result( )함수
• 특정 레코드를 불러오기 위해 사용되는 ‘mysql_result( )’ 함수는 ‘mysql_que
ry( )’ 함수의 수행 후
• 반환되는 결과값, 행 번호, 열 제목을 매개변수로 받아 결과 값의 해당 행과
열에 위치한 레코드를 불러온다.
<사용 형식>
44/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-9.php] mysql_result( )함수로 특정 레코드 불러오기
45/48
Chapter 08. MySQL과 PHP의 연동
예제 [ex8-9]에서는 특정 레코드를 불러오는 ‘mysql_result( )’함수를 반복문(for문)
을 사용하여 전체 레코드를 출력한다.
46/48
Chapter 08. MySQL과 PHP의 연동
▣ [ex8-9.php] mysql_result( )함수로 특정 레코드 불러오기
47/48
요 점 정 리
Chapter 08. MySQL과 PHP의 연동
 PHP에서 MySQL에 접속하기 위해 사용되는 함수는 ‘mysql_connect( )’함수이, mysql의
접속을 종료하는 함수는 ‘mysql_close( )’함수이다.
 데이터베이스를 선택할 때는 ‘mysql_select_db( )’함수를 사용한다.
 SQL문법에 의해 작성된 질의, 접속을 식별하는 식별자(변수명)를 매개변수로 받아 질의
를 수행할 때는 ‘mysql_query( )’함수를 사용한다.
 레코드의 전체 개수를 구할 때는 ‘mysql_num_rows( )’함수를 사용한다.
 필드의 전체 개수를 구할 때는 ‘mysql_num_fields( )’함수를 사용한다.
 레코드를 하나씩 호출할 때는 ‘mysql_fetch_row( )’함수를 사용하고, MySQL 질의문 수행
후 반환되는 결과값에 따라 특정 행과 열에 위치한 특정 레코드를 불러올 때는 ‘mysql_r
esult( )’함수를 사용한다.
 레코드를 하나씩 호출할 때 배열을 사용하려면 ‘mysql_fetch_array( )’함수를 사용한다.
48/48