PHP에서 (MySQL 개선 된 확장) 확장자를 사용하여 데이터베이스에 연결하고 쿼리를 실행하면 mysqli_query () 와 같은 쿼리 함수를 실행할 때 쿼리가 결과 세트 (예 : 선택 쿼리)를 반환하면 mysqli_result 객체를 얻게됩니다.
이 mysqli_result 객체는 쿼리 결과를 조작하기위한 인터페이스이며,이를 통해 쿼리 라인에 의해 반환 된 데이터를 필드별로 읽을 수 있습니다.
mysqli_result 는 객체 지향 및 절차 스타일 모두에 존재하는 결과 세트 객체입니다. 데이터베이스 쿼리에 의해 리턴되는 모든 행과 열 데이터는 포함되어 있지만 이러한 데이터를 모두 한 번에 메모리에로드하지는 않지만 다양한 방법을 통해 주문형으로 가져와야합니다.
데이터를 얻는 일반적인 방법은 다음과 같습니다.
fetch_assoc () → 연관 배열 행을 얻습니다
fetch_row () → 행의 인덱스 배열을 가져옵니다
fetch_object () → 객체 행을 가져옵니다
fetch_array () → 연관 배열, 인덱스 배열 또는 둘 다 (구성 가능)로드 받기
이 기사는 fetch_array () 에 중점을 둡니다.
fetch_array () 는 mysqli_result 의 메소드이며 현재 결과 세트에서 데이터 행을 얻는 데 사용되며 리턴 양식은 배열입니다.
두 가지 스타일의 전화가 있습니다.
객체 지향 스타일 :
$result = $mysqli->query("SELECT id, name FROM users");
$row = $result->fetch_array();
프로세스 스타일 :
$result = mysqli_query($conn, "SELECT id, name FROM users");
$row = mysqli_fetch_array($result);
어느 쪽이든, 더 이상 줄이 없을 때까지 호출 할 때마다 한 줄이 필요합니다 (이 시점에서 False를 반환).
fetch_array ()는 리턴 배열의 유형을 제어하기 위해 선택적 매개 변수를 수신 할 수 있습니다.
전체 서명 :
array mysqli_fetch_array(mysqli_result $result, int $resulttype = MYSQLI_BOTH)
매개 변수 $ resulttype 값은 다음과 같습니다.
mysqli_assoc → 반환 만 연관 배열 (키로 필드 이름)
mysqli_num → 숫자 색인 배열 만 반환합니다 (필드 인덱스는 핵심입니다)
mysqli_both (기본값) → 협회 + 숫자 인덱스 혼합 어레이를 반환합니다.
예를 들어:
$conn = mysqli_connect("localhost", "username", "password", "database");
$result = mysqli_query($conn, "SELECT id, name FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "ID: " . $row['id'] . " Name: " . $row['name'] . "<br>";
}
여기서 우리는 mysqli_assoc을 사용하므로 $ 행 에는 필드 이름 키 만 있으며 숫자 색인은 없습니다.
Complete example: