데이터베이스 작업에 PHP를 사용할 때 MySQLI 확장자는 쿼리 결과를 얻는 여러 가지 방법을 제공합니다. 그 중에서 MySQLI_RESULT :: FETCH_COLUMN 및 MYSQLI_FCETH_ARRAY 는 일반적으로 사용되지만 다른 기능입니다. 효율적이고 관리하기 쉬운 코드를 작성하는 데 그들의 차이점과 적용 가능한 시나리오를 이해하는 것이 매우 중요합니다.
mysqli_result :: fetch_column
이것은 객체 지향 스타일 mysqli_result 클래스에 속하는 PHP 8.1 버전에 추가 된 새로운 방법입니다. 결과 세트에서 지정된 열의 값을 얻고 단일 필드의 데이터를 반환하는 데 사용됩니다.
mysqli_fetch_array
이것은 현재 행의 모든 필드 데이터를 반환하는 절차 지향 함수입니다. 매개 변수 설정에 따라 배열, 연관 배열, 숫자 인덱스 어레이 또는 둘 다를 반환합니다.
특성 | mysqli_result :: fetch_column | mysqli_fetch_array |
---|---|---|
반환 값 | 지정된 열의 단일 필드 값을 반환합니다 | 현재 행의 배열 (연관, 숫자 인덱스 또는 둘 다)을 반환합니다. |
스타일을 사용하십시오 | 객체 지향 | 프로세스 지향 |
반환 유형 | 스칼라 값 (문자열, 숫자 등) | 정렬 |
해당 시나리오 | 특정 데이터 열만 있으면 메모리가 저장됩니다 | 여러 열을 포함하여 전체 데이터 행이 필요합니다 |
PHP 버전 요구 사항 | PHP 8.1 이상 | 이전 버전의 PHP를 지원합니다 |
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");
while ($id = $result->fetch_column(0)) { // 첫 번째 열을 얻으십시오 id
echo "사용자ID: $id\n";
}
$mysqli->close();
?>
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "사용자ID: " . $row['id'] . ", 사용자名: " . $row['name'] . "\n";
}
$mysqli->close();
?>
쿼리 결과에서 하나의 열만 관심을 갖고 PHP 8.1 이상을 사용하는 경우 Fetch_Column은 보다 간결하고 효율적인 선택입니다.
불필요한 배열 오버 헤드를 피하고 코드를보다 간결하게 만드는 지정된 열의 데이터를 직접 반환합니다.
전체 행에서 여러 필드에 액세스해야하거나 프로젝트가 여전히 PHP 8.0 이하를 사용하는 경우 MySQLI_Fetch_Array를 사용하는 것이 더 적절합니다.
더 많은 반환 유형을 지원하고 필드에 유연하게 액세스 할 수 있습니다.
객체 지향 대 프로세스 지향 <br> 객체 지향 프로그래밍에 익숙한 경우 $ result-> fetch_column () 및 MySQLI_Result 의 기타 객체 지향 메소드를 사용하는 것이 좋습니다.
그렇지 않으면 mysqli_fetch_array () 는 여전히 고전적이고 널리 사용되는 절차 기능입니다.
장면 | 권장 기능 |
---|---|
단일 필드 만 가져 오기 (단일 열) | mysqli_result :: fetch_column |
여러 필드에 대한 전체 기록을 얻으십시오 | mysqli_fetch_array 또는 $ result-> fetch_assoc () |
PHP 8.0 이하와 호환됩니다 | mysqli_fetch_array |
함수를 선택할 때는 비즈니스 요구 및 PHP 버전을 기반으로 결정을 내려야합니다. 이 둘의 차이를 이해하면보다 간결하고 효율적인 데이터베이스 액세스 코드를 작성하는 데 도움이 될 수 있습니다.