mysqli_result :: field_seek 및 mysqli_fetch_assoc을 사용하는 방법은 필드 데이터를 얻습니까?
쿼리 결과 세트에서 필드 데이터를 얻는 것은 데이터베이스 작업에 PHP의 MySQLI Extension을 사용할 때 일반적인 작업입니다. MySQLI 확장자는 MySQLI_RESULT :: FIELD_SEEK 및 MYSQLI_FETCH_ASSOC 가 매우 유용한 두 가지 기능 인 결과 세트를 처리하는 여러 가지 방법을 제공합니다. Field_Seek을 사용하면 결과 세트 포인터를 지정된 필드 위치로 이동할 수 있으며 MySQLI_Fetch_Assoc은 연관 배열에서 결과 세트에서 데이터를 얻을 수 있습니다. 이 두 기능을 사용하면 필요한 필드의 데이터를 얻기 위해보다 효율적이고 유연하게 만들 수 있습니다.
mysqli_result :: field_seek :이 메소드를 사용하면 결과 세트의 포인터를 지정된 필드 인덱스 위치로 이동할 수 있습니다. mysqli_fetch_assoc , mysqli_fetch_row 등과 같은 함수를 통해 얻은 후속 데이터에 영향을 미칩니다.
mysqli_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_Seek 및 MySQLI_Fetch_assoc을 사용하여 필드 데이터를 얻는 방법을 보여주는 간단한 PHP 예입니다.
<span><span><span class="hljs-meta"><?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>->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>->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>-></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>-></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>-></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>-></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>-></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>->error;
}
</span><span><span class="hljs-comment">// 데이터베이스 연결을 닫습니다</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
데이터베이스 연결 : 먼저 새로운 MySQLI ()를 사용하여 데이터베이스에 연결을 만듭니다.
쿼리 실행 : 쿼리는 $ mysqli-> query () 를 통해 실행되어 사용자 테이블의 ID , 사용자 이름 , 이메일 및 연령 필드를 쿼리합니다.
Field_Seek을 사용하여 필드 포인터를 이동하십시오 : field_seek (2) 를 사용하여 결과 세트 포인터를 전자 메일 필드의 위치로 이동하십시오 (색인 값은 2). 현재 MySQLI_Fetch_Assoc은 이메일 필드에서 시작하는 관련 데이터 만 반환합니다.
데이터 가져 오기 및 표시 : mysqli_fetch_assoc ()을 통해 각 데이터 행을 가져 와서 이메일 필드의 내용을 표시합니다. Field_seek은 후속 Fetch_assoc 호출에 유효하므로 데이터를 얻기 시작할 필드를 유연하게 제어 할 수 있습니다.
릴리스 결과 세트 : $ result-> free ()는 쿼리 결과 세트를 릴리스하는 데 사용됩니다.
데이터베이스 연결을 닫습니다 . $ mysqli-> close () 데이터베이스 연결을 닫습니다.
Field_seek 메소드는 현재 결과 세트를 기반으로 모든 후속 Fetch_* 함수에 영향을 미치므로 사용하도록주의하십시오. 쿼리 결과를 사용하기 전에 구조 및 현장 순서를 이해했는지 확인하십시오.
mysqli_fetch_assoc ()는 현재 행의 모든 필드 데이터를 포함하는 연관 배열을 반환합니다. 필드 이름은 배열의 키입니다.
쿼리 결과 세트에 여러 필드가 포함되어 있고 특정 순서로 일부 필드에 대한 데이터를 가져 오려면 Field_Seek을 통해 포인터의 이동을 제어하여 MySQLI_FETCH_ASSOC 일 때 올바른 필드를 얻을 수 있습니다.
mysqli_result :: field_seek 및 mysqli_fetch_assoc 을 사용하면 쿼리 결과를보다 유연하게 작동시키는 데 도움이 될 수 있습니다. Field_seek에 의해 필드 포인터의 위치를 설정하면 특정 필드에 대한 데이터를 선택적으로 얻을 수 있습니다. 이 조합은 특히 쿼리 결과에서 일부 필드를 건너 뛰어야하거나 필드 순서를 유연하게 조정해야 할 때 특히 유용합니다.