
mysqli_result::fetch_array 함수는 MySQL 데이터베이스에서 데이터를 가져올 때 사용되는 함수입니다. 이 함수는 결과 세트에서 한 행을 가져와서 배열로 반환합니다.
fetch_array 함수의 매개변수 중 fetch_type은 데이터를 가져올 때의 형식을 지정하는 매개변수입니다. fetch_type에는 세 가지 옵션이 있습니다.
1. MYSQLI_ASSOC: 이 옵션을 사용하면 결과 세트에서 한 행을 가져와서_ASSOC형태의 배열로 반환합니다. 이 배열의 키는 MySQL에서 사용되는 열 이름입니다.
2. MYSQLI_NUM: 이 옵션을 사용하면 결과 세트에서 한 행을 가져와서_NUM형태의 배열로 반환합니다. 이 배열의 키는 열의 인덱스 번호입니다.
3. MYSQLI_BOTH: 이 옵션을 사용하면 결과 세트에서 한 행을 가져와서_ASSOC형태의 배열과_NUM형태의 배열을 모두 반환합니다.
fetch_array 함수를 사용하여 데이터를 가져올 때, MYSQLI_ASSOC를 사용하여 가져왔을 때, key-value pair로 데이터가 가져와지는 이유는 MySQL에서 사용되는 열 이름이 배열의 키로 사용되기 때문입니다. 반면에 MYSQLI_NUM을 사용하여 가져왔을 때, key-value pair로 데이터가 가져와지지 않는 이유는 열의 인덱스 번호가 배열의 키로 사용되기 때문입니다.
fetch_array 함수를 사용하여 데이터를 가져올 때, MYSQLI_BOTH를 사용하여 가져왔을 때, MYSQLI_ASSOC와 MYSQLI_NUM의 데이터가 모두 가져와지는 이유는 fetch_type이 MYSQLI_BOTH인 경우, 결과 세트에서 한 행을 가져와서_ASSOC형태의 배열과_NUM형태의 배열을 모두 반환하기 때문입니다.
예를 들어, MySQL에서 다음 쿼리를 실행한 후, fetch_array 함수를 사용하여 데이터를 가져올 때, MYSQLI_ASSOC와 MYSQLI_BOTH를 사용한 결과는 다음과 같습니다.
#hostingforum.kr
php
$query = "SELECT * FROM 테이블명";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
print_r($row);
}
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
print_r($row);
}
위의 예제에서, MYSQLI_ASSOC를 사용하여 가져온 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[열1] => 값1
[열2] => 값2
[열3] => 값3
)
반면에 MYSQLI_BOTH를 사용하여 가져온 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[0] => 값1
[열1] => 값1
[1] => 값2
[열2] => 값2
[2] => 값3
[열3] => 값3
)
2025-05-28 01:26