PHP에서 mysql_query()를 통해
데이터를 SELECT했을 때,
mysql_query()에서 반환된 리소스를
결과 테이블을 다루는 함수에 전달하여
데이터에 접근할 수 있습니다.
데이터를 꺼내는 함수에는
아래의 종류가 있습니다.
이 중 붉게 칠해진 세 개 함수에
대해서만 알아보겠습니다.
- mysql_fetch_field()
- mysql_fetch_object()
- mysql_fetch_row()
- mysql_fetch_assoc()
- mysql_fetch_array()
데이터를 꺼내는 예제에서는
공통적으로 아래의 테이블을 사용하겠습니다.
SEQ
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 ‘SEQ: ‘.$row[0]; echo ‘ Name: ‘.$row[1]; echo ‘ Grade: ‘.$row[2]; echo ‘<br />’; } ?> |
SEQ: 0 Name: 햄버거 Grade: A SEQ: 1 Name: 피자 Grade: B SEQ: 2 Name: 치킨 Grade: B SEQ: 3 Name: 짜장면 Grade: C SEQ4 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 ‘SEQ: ‘.$row[‘SEQ’]; echo ‘ Name: ‘.$row[‘Name’]; echo ‘ Grade: ‘.$row[‘Grade’]; echo ‘<br />’; } ?> |
SEQ: 0 Name: 햄버거 Grade: A SEQ: 1 Name: 피자 Grade: B SEQ: 2 Name: 치킨 Grade: B SEQ: 3 Name: 짜장면 Grade: C SEQ: 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 ‘SEQ: ‘.$row[‘SEQ’]; echo ‘ Name: ‘.$row[1]; echo ‘ Grade: ‘.$row[‘Grade’]; echo ‘<br />’; } ?> |
SEQ: 0 Name: 햄버거 Grade: A SEQ: 1 Name: 피자 Grade: B SEQ: 2 Name: 치킨 Grade: B SEQ: 3 Name: 짜장면 Grade: C SEQ: 4 Name: 보쌈 Grade: F |
'프로그래밍언어 > php' 카테고리의 다른 글
PHP 특수문자 제거 정규표현식 (0) | 2020.02.10 |
---|---|
HTML파일안에서 PHP 내용이 주석처리되어 개발자도구에 표시됨 (1) | 2019.07.09 |
PHP mb_strimwidth() 문자열을 자르고 뒤에 원하는 문자열로 대체 (0) | 2018.03.29 |
PHP 배열에 포함되어 있는지 확인 in_array()함수 (0) | 2018.03.19 |
PHP 접속 브라우저 알아내기 // 크로스브라우징 // php 브라우저 분기 // $_SRVER['HTTP_USER_AGENT'] (4) | 2018.03.07 |