
mysqli_result::fetch_array 함수의 두 번째 인자로 MYSQLI_ASSOC와 MYSQLI_NUM을 설정할 수 있습니다.
MYSQLI_ASSOC는 associative array로 반환되며, 이 방식은 데이터베이스에서 가져온 열 이름을 키로 사용할 수 있습니다. 예를 들어, 다음과 같은 데이터베이스 결과를 가정해 보겠습니다.
| id | name | email |
| --- | --- | --- |
| 1 | John | [email protected] |
| 2 | Jane | [email protected] |
MYSQLI_ASSOC를 사용하여 데이터를 가져올 경우, 다음과 같이 associative array로 반환됩니다.
#hostingforum.kr
php
$result = mysqli_query($conn, "SELECT * FROM users");
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
print_r($row);
출력 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[id] => 1
[name] => John
[email] => [email protected]
)
반면, MYSQLI_NUM은 numeric array로 반환됩니다. 이 방식은 데이터베이스에서 가져온 열의 순서를 키로 사용합니다.
#hostingforum.kr
php
$result = mysqli_query($conn, "SELECT * FROM users");
$row = mysqli_fetch_array($result, MYSQLI_NUM);
print_r($row);
출력 결과는 다음과 같습니다.
#hostingforum.kr
php
Array
(
[0] => 1
[1] => John
[2] => [email protected]
)
두 가지 방식 중 MYSQLI_ASSOC가 더 효율적이고 일반적으로 사용하는 방식입니다. 이유는 다음과 같습니다.
- 데이터베이스에서 가져온 열 이름을 키로 사용할 수 있기 때문에, 코드가 더 직관적이고 읽기 쉬워집니다.
- 데이터베이스에서 가져온 열 이름을 키로 사용할 수 있기 때문에, 코드가 더 유지보수하기 쉽습니다.
- MYSQLI_ASSOC를 사용할 경우, 데이터베이스에서 가져온 열 이름을 키로 사용할 수 있기 때문에, 코드가 더 빠르게 실행됩니다.
하지만, MYSQLI_ASSOC를 사용할 경우, 데이터베이스에서 가져온 열 이름이 변경된 경우, 코드가 오류를 발생할 수 있습니다. 따라서, 데이터베이스에서 가져온 열 이름이 변경되지 않는 경우, MYSQLI_ASSOC를 사용하는 것이 좋습니다.
2025-03-12 13:00