현재 위치: > 최신 기사 목록> mysqli_result :: field_seek 및 mysqli_fetch_assoc을 사용하는 방법은 필드 데이터를 얻습니까?

mysqli_result :: field_seek 및 mysqli_fetch_assoc을 사용하는 방법은 필드 데이터를 얻습니까?

gitbox 2025-08-11

mysqli_result :: field_seek 및 mysqli_fetch_assoc을 사용하는 방법은 필드 데이터를 얻습니까?

쿼리 결과 세트에서 필드 데이터를 얻는 것은 데이터베이스 작업에 PHP의 MySQLI Extension을 사용할 때 일반적인 작업입니다. MySQLI 확장자는 MySQLI_RESULT :: FIELD_SEEKMYSQLI_FETCH_ASSOC 가 매우 유용한 두 가지 기능 인 결과 세트를 처리하는 여러 가지 방법을 제공합니다. Field_Seek을 사용하면 결과 세트 포인터를 지정된 필드 위치로 이동할 수 있으며 MySQLI_Fetch_Assoc은 연관 배열에서 결과 세트에서 데이터를 얻을 수 있습니다. 이 두 기능을 사용하면 필요한 필드의 데이터를 얻기 위해보다 효율적이고 유연하게 만들 수 있습니다.

1. 기본 개념

  • mysqli_result :: field_seek :이 메소드를 사용하면 결과 세트의 포인터를 지정된 필드 인덱스 위치로 이동할 수 있습니다. mysqli_fetch_assoc , mysqli_fetch_row 등과 같은 함수를 통해 얻은 후속 데이터에 영향을 미칩니다.

  • mysqli_fetch_assoc :이 메소드는 현재 결과 세트의 포인터 위치에서 데이터 행을 가져 와서 연관 배열로 반환합니다.

2. 예 : Field_SeekMySQLI_Fetch_Assoc을 사용하여 사용하십시오

사용자 라는 데이터베이스 테이블이 있다고 가정하면 테이블 구조는 다음과 같습니다.

 <span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> users (
    id </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
    username </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">50</span></span><span>),
    email </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>),
    age </span><span><span class="hljs-type">INT</span></span><span>
);
</span></span>

다음은 Field_SeekMySQLI_Fetch_assoc을 사용하여 필드 데이터를 얻는 방법을 보여주는 간단한 PHP 예입니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 데이터베이스 연결을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);

</span><span><span class="hljs-comment">// 연결이 성공했는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// 쿼리를 실행하십시오</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, username, email, age FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>);

</span><span><span class="hljs-comment">// 쿼리가 성공했는지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// 사용 field_seek 지정된 필드 위치로 이동하십시오</span></span><span>
    </span><span><span class="hljs-comment">// 먼저 얻고 싶다고 가정 해 봅시다 'email' 전지(第二个전지),전지索引从 0 시작</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">field_seek</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>);  </span><span><span class="hljs-comment">// 'email' 전지的索引为2</span></span><span>

    </span><span><span class="hljs-comment">// 결과를 얻는 첫 번째 줄</span></span><span>
    </span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>();

    </span><span><span class="hljs-comment">// 이 라인에서 데이터를 출력하십시오,보여주다 'email' 전지</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    }

    </span><span><span class="hljs-comment">// 다른 행의 데이터를 계속 얻으십시오</span></span><span>
    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Username: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>] . </span><span><span class="hljs-string">" - Age: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    }

    </span><span><span class="hljs-comment">// 결과 세트를 릴리스하십시오</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
}

</span><span><span class="hljs-comment">// 데이터베이스 연결을 닫습니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

3. 코드를 설명하십시오

  1. 데이터베이스 연결 : 먼저 새로운 MySQLI ()를 사용하여 데이터베이스에 연결을 만듭니다.

  2. 쿼리 실행 : 쿼리는 $ mysqli-> query () 를 통해 실행되어 사용자 테이블의 ID , 사용자 이름 , 이메일연령 필드를 쿼리합니다.

  3. Field_Seek을 사용하여 필드 포인터를 이동하십시오 : field_seek (2) 를 사용하여 결과 세트 포인터를 전자 메일 필드의 위치로 이동하십시오 (색인 값은 2). 현재 MySQLI_Fetch_Assoc은 이메일 필드에서 시작하는 관련 데이터 만 반환합니다.

  4. 데이터 가져 오기 및 표시 : mysqli_fetch_assoc ()을 통해 각 데이터 행을 가져 와서 이메일 필드의 내용을 표시합니다. Field_seek은 후속 Fetch_assoc 호출에 유효하므로 데이터를 얻기 시작할 필드를 유연하게 제어 할 수 있습니다.

  5. 릴리스 결과 세트 : $ result-> free ()는 쿼리 결과 세트를 릴리스하는 데 사용됩니다.

  6. 데이터베이스 연결을 닫습니다 . $ mysqli-> close () 데이터베이스 연결을 닫습니다.

4. 주목할만한 것들

  • Field_seek 메소드는 현재 결과 세트를 기반으로 모든 후속 Fetch_* 함수에 영향을 미치므로 사용하도록주의하십시오. 쿼리 결과를 사용하기 전에 구조 및 현장 순서를 이해했는지 확인하십시오.

  • mysqli_fetch_assoc ()는 현재 행의 모든 필드 데이터를 포함하는 연관 배열을 반환합니다. 필드 이름은 배열의 키입니다.

  • 쿼리 결과 세트에 여러 필드가 포함되어 있고 특정 순서로 일부 필드에 대한 데이터를 가져 오려면 Field_Seek을 통해 포인터의 이동을 제어하여 MySQLI_FETCH_ASSOC 일 때 올바른 필드를 얻을 수 있습니다.

5. 요약

mysqli_result :: field_seekmysqli_fetch_assoc 을 사용하면 쿼리 결과를보다 유연하게 작동시키는 데 도움이 될 수 있습니다. Field_seek에 의해 필드 포인터의 위치를 설정하면 특정 필드에 대한 데이터를 선택적으로 얻을 수 있습니다. 이 조합은 특히 쿼리 결과에서 일부 필드를 건너 뛰어야하거나 필드 순서를 유연하게 조정해야 할 때 특히 유용합니다.