> 백엔드 개발 > PHP 튜토리얼 > MySQLi 결과 세트의 첫 번째 값에만 액세스하는 이유는 무엇입니까?

MySQLi 결과 세트의 첫 번째 값에만 액세스하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-19 11:33:02
원래의
909명이 탐색했습니다.

Why Am I Only Accessing the First Value in My MySQLi Result Set?

MySQLi에서 결과 세트 반복

MySQLi에서 결과 세트로 작업할 때 첫 번째 값에만 액세스할 수 있는 문제가 발생할 수 있습니다. 반복하는 동안. 이는 일반적으로 fetch_array() 사용과 해당 동작에 대한 부적절한 이해로 인해 발생합니다.

fetch_array()의 기본 동작

기본적으로 fetch_array()는 두 가지를 모두 포함하는 배열을 반환합니다. MYSQLI_BOTH로 알려진 인덱스 키와 연관 키. 인덱스 키 또는 연관 키만 사용하여 결과 세트를 지정하려면 각각 MYSQLI_NUM 또는 MYSQLI_ASSOC를 사용하십시오.

fetch_array()의 대안

fetch_array()에 의존하는 대신, 보다 효율적이고 간결하게 고려하십시오. 대안:

  • 연관 배열(MYSQLI_ASSOC): 열 이름을 키로 사용하여 값에 액세스:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) {
    echo $row['uid'];
}
로그인 후 복사
  • 인덱스 배열(MYSQLI_NUM): 액세스 인덱스별 값:
while ($row = $output->fetch_array(MYSQLI_NUM)) {
    echo $row[0];
}
로그인 후 복사
  • 객체 지향 반복: 결과 집합을 반복 가능한 객체로 반복하고 fetch_array()의 필요성을 생략합니다.
foreach ($output as $row) {
    echo $row['uid'];
}
로그인 후 복사

문제 해결 반복

$i를 사용하여 인덱스 키를 증가시키는 것은 연관 키가 있는 결과 세트에 적합하지 않습니다. 예를 들어 결과 집합에는 다음 구조의 값이 있을 수 있습니다.

[
    0 => [0 => 1, 'uid' => 1],
    1 => [0 => 2, 'uid' => 2],
    2 => [0 => 3, 'uid' => 3]...
]
로그인 후 복사

이 시나리오에서는 $row[1]가 후속 반복에서 존재하지 않아 문제가 발생합니다.

위 내용은 MySQLi 결과 세트의 첫 번째 값에만 액세스하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿