
mysqli_result::fetch_array() 함수의 result_type은 데이터베이스에서 가져온 데이터의 형식을 지정하는 데 사용됩니다.
- MYSQLI_ASSOC: 배열의 키가 컬럼 이름이 됩니다.
- MYSQLI_NUM: 배열의 키가 숫자가 됩니다.
- MYSQLI_BOTH: 배열의 키가 컬럼 이름과 숫자가 모두 됩니다.
각 result_type의 값으로 데이터를 가져올 때의 차이점은 다음과 같습니다.
- MYSQLI_ASSOC: 컬럼 이름을 키로 사용하여 데이터를 가져옵니다. 예를 들어, 'id' 컬럼의 값을 가져올 때 'id'라는 키를 사용합니다.
- MYSQLI_NUM: 컬럼의 인덱스를 키로 사용하여 데이터를 가져옵니다. 예를 들어, 'id' 컬럼의 값을 가져올 때 0이라는 키를 사용합니다.
- MYSQLI_BOTH: 컬럼 이름과 인덱스를 모두 키로 사용하여 데이터를 가져옵니다. 예를 들어, 'id' 컬럼의 값을 가져올 때 'id'와 0이라는 키를 사용합니다.
예를 들어, 다음과 같은 데이터베이스 테이블이 있다고 가정해 보겠습니다.
| id | name | age |
|----|------|-----|
| 1 | John | 25 |
| 2 | Jane | 30 |
이때, MYSQLI_ASSOC로 데이터를 가져올 때는 다음과 같이 컬럼 이름을 키로 사용하여 데이터를 가져올 수 있습니다.
#hostingforum.kr
php
$result = mysqli_query($conn, "SELECT * FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo $row['id'] . ' ' . $row['name'] . ' ' . $row['age'] . "n";
}
이때, MYSQLI_NUM으로 데이터를 가져올 때는 다음과 같이 컬럼의 인덱스를 키로 사용하여 데이터를 가져올 수 있습니다.
#hostingforum.kr
php
$result = mysqli_query($conn, "SELECT * FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
echo $row[0] . ' ' . $row[1] . ' ' . $row[2] . "n";
}
이때, MYSQLI_BOTH으로 데이터를 가져올 때는 다음과 같이 컬럼 이름과 인덱스를 모두 키로 사용하여 데이터를 가져올 수 있습니다.
#hostingforum.kr
php
$result = mysqli_query($conn, "SELECT * FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
echo $row['id'] . ' ' . $row[0] . ' ' . $row['age'] . "n";
}
결과적으로, 각 result_type의 값으로 데이터를 가져올 때의 차이점은 컬럼 이름을 키로 사용하는지, 컬럼의 인덱스를 키로 사용하는지, 또는 컬럼 이름과 인덱스를 모두 키로 사용하는지에 달려 있습니다.
2025-08-10 22:10