PHP에서 mysql_query()를 통해 데이터를 SELECT했을 때 mysql_query()에서 반환된 리소스를 결과 테이블을 다루는 함수에 전달하여 데이터에 접근할 수 있습니다.
데이터를 꺼내는 함수에는 아래의 종류가 있습니다.
이 중 붉게 칠해진 세 개 함수에 대해서만 알아보겠습니다.
- mysql_fetch_field()
- mysql_fetch_object()
- mysql_fetch_row()
- mysql_fetch_assoc()
- mysql_fetch_array()
데이터를 꺼내는 예제에서는 공통적으로 아래의 ExampleTable 테이블을 사용하겠습니다.
ID
Name
Grade
0
김주혁
A
1
김산혜
B
2
차민혁
B
3
권혜민
C
4
송영훈
F
a. 공통점
mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_array() 세 함수는 한 행에서 데이터를 읽습니다.
또한 데이터를 읽은 후 함수 내부의 포인터를 증가시켜 다시 호출될 때 다음 행을 읽을 수 있도록 합니다.
b. mysql_fetch_row( resource $result )
mysql_fetch_row()는 데이터를 0으로 시작하는 숫자형 인덱스 배열로 반환합니다.
인덱스 번호로만 데이터를 구분하기 때문에 가독성이 떨어지는 단점이 있습니다.
예제 및 출력
<?php $result = mysql_query(‘SELECT * FROM ExampleTable’); while($row = mysql_fetch_row($result)) { echo ‘ID: ‘.$row[0]; echo ‘ Name: ‘.$row[1]; echo ‘ Grade: ‘.$row[2]; echo ‘<br />’; } ?> |
ID: 0 Name: 김주혁 Grade: A ID: 1 Name: 김산혜 Grade: B ID: 2 Name: 차민혁 Grade: B ID: 3 Name: 권혜민 Grade: C ID: 4 Name: 송영훈 Grade: F |
c. mysql_fetch_assoc( resource $result )
mysql_fetch_assoc()는 데이터를 문자형 연관 배열로 반환합니다.
배열의 키 이름으로는 필드의 이름을 갖습니다.
필드의 이름은 대소문자를 구별합니다.
예제 및 출력
<?php $result = mysql_query(‘SELECT * FROM ExampleTable’); while($row = mysql_fetch_assoc($result)) { echo ‘ID: ‘.$row[‘ID’]; echo ‘ Name: ‘.$row[‘Name’]; echo ‘ Grade: ‘.$row[‘Grade’]; echo ‘<br />’; } ?> |
ID: 0 Name: 김주혁 Grade: A ID: 1 Name: 김산혜 Grade: B ID: 2 Name: 차민혁 Grade: B ID: 3 Name: 권혜민 Grade: C ID: 4 Name: 송영훈 Grade: F |
d. mysql_fetch_array( resource $result [, int $result_type ] )
mysql_fetch_array()는 $result_type의 값에 따라 반환될 배열의 형태가 다릅니다.
$result_type의 값으로는 아래와 같은 상수가 올 수 있으며, 기본값은 MYSQL_BOTH입니다.
- MYSQL_NUM: 이 상수를 사용하면 숫자형 인덱스 배열을 반환합니다. = mysql_fetch_row()
- MYSQL_ASSOC: 이 상수를 사용하면 문자형 연관 배열을 반환합니다. = mysql_fetch_assoc()
- MYSQL_BOTH: 이 상수를 사용하면 인덱스 배열과 연관 배열을 동시에 반환합니다.
예제 및 출력
<?php $result = mysql_query(‘SELECT * FROM ExampleTable’); while($row = mysql_fetch_array($result, MYSQL_BOTH)) { echo ‘ID: ‘.$row[‘ID’]; echo ‘ Name: ‘.$row[1]; echo ‘ Grade: ‘.$row[‘Grade’]; echo ‘<br />’; } ?> |
ID: 0 Name: 김주혁 Grade: A ID: 1 Name: 김산혜 Grade: B ID: 2 Name: 차민혁 Grade: B ID: 3 Name: 권혜민 Grade: C ID: 4 Name: 송영훈 Grade: F |
'개발노트 > 웹개발' 카테고리의 다른 글
네이버 스마트에디터 사용자 업로드 파일 중복 줄이기 (0) | 2013.09.01 |
---|