PHP를 사용하여 MySQL 데이터베이스를 작동 할 때는 종종 mysqli_query를 통해 쿼리 결과를 얻은 다음 mysqli_fetch_assoc을 사용하여 데이터 행을 행으로 읽습니다. 결과 세트에서 행으로 점프하고 데이터를 읽으려면 mysqli_result :: data_seek가 편리합니다.
이 기사에서는 mysqli_result :: data_seek 및 mysqli_fetch_assoc 을 사용하여 결과 세트에서 지정된 행 데이터를 읽는 방법을 설명합니다.
mysqli_result :: data_seek (int $ offset) : 결과 세트의 내부 포인터를 지정된 행 (0에서 카운트)으로 이동합니다.
mysqli_fetch_assoc (mysqli_result $ result) : 현재 포인터 위치에서 데이터 행을 가져 와서 연관 배열을 반환합니다.
쿼리를 실행하고 여러 결과를 얻고 순서대로 읽지 않고 특정 데이터 행에 무작위로 액세스하려고한다고 가정하십시오.
<?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
// 연결을 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 쿼리를 실행하십시오
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);
if ($result && $result->num_rows > 0) {
// 우리가 읽고 싶다고 가정 해 봅시다3라인 데이터(인덱스0시작,즉,3행은 인덱스입니다2)
$targetRow = 2;
// 포인터를 대상 행으로 이동하십시오
$result->data_seek($targetRow);
// 현재 행에서 데이터를 읽습니다
$row = $result->fetch_assoc();
// 출력 데이터
echo "ID: " . $row['id'] . "\n";
echo "Name: " . $row['name'] . "\n";
echo "Email: " . $row['email'] . "\n";
} else {
echo "데이터가 발견되지 않았습니다";
}
// 연결을 닫으십시오
$mysqli->close();
?>
data_seek 함수
data_seek은 지정된 행에 대한 결과 세트 포인터를 찾는 것입니다. 다음에 fetch_assoc이 호출되면이 행에서 읽기 시작합니다.
라인 인덱스는 0 <br>에서 시작합니다 행 색상 카운트는 0에서 시작됩니다. 첫 번째 줄을 읽으려면 data_seek (0) ; 세 번째 줄은 data_seek (2) 입니다.
적용 가능한 시나리오 제한 <br> Data_Seek은 버퍼링을 지원하는 결과 세트를 사용할 때만 사용할 수 있습니다. 기본적으로 MySQLI_Query는 버퍼링 된 결과 세트를 반환합니다.
mysqli_result :: data_seek 및 mysqli_fetch_assoc 의 조합을 통해 전체 결과 세트를 가로 지르는 성능 오버 헤드를 피하면서 결과 세트에서 모든 데이터 행을 읽기 위해 유연하게 점프 할 수 있습니다. 이 기술을 마스터하면보다 효율적인 데이터베이스 액세스 코드를 작성하는 데 도움이됩니다.