현재 위치: > 최신 기사 목록> MySQLI_RESULT를 가로 지르는 올바른 자세

MySQLI_RESULT를 가로 지르는 올바른 자세

M66 2025-05-28

데이터베이스 작업에 PHP를 사용하는 경우 MySQLI 확장 기능은 데이터베이스를 연결, 쿼리 및 작동하는 매우 편리한 기능을 제공합니다. mysqli_result 는 쿼리가 실행될 때 반환 된 결과 세트 객체입니다. 이 기사에서는 쿼리 결과를 효율적으로 얻고 처리 할 수 ​​있도록 MySQLI_Result 함수가 반환 한 모든 결과를 올바르게 통과하는 방법을 소개합니다.

1. 데이터베이스에 연결하십시오

먼저 mysqli_connect () 함수를 통해 데이터베이스에 연결해야합니다. 여기에서 이미 기본 MySQL 데이터베이스 작업 경험이 있다고 가정하면 다음은 간단한 데이터베이스 연결 예입니다.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);

// 연결을 확인하십시오
if ($conn->connect_error) {
    die("연결이 실패했습니다: " . $conn->connect_error);
}
?>

2. 쿼리를 실행하십시오

데이터베이스에 연결 한 후 MySQLI_Query ()를 통해 SQL 쿼리를 실행할 수 있습니다. 사용자 라는 테이블을 쿼리하고 모든 사용자에 대한 정보를 얻는다 고 가정 해보십시오.

 $sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

이 시점에서 $ 결과는 쿼리의 모든 데이터를 포함하는 MySQLI_RESULT 객체가됩니다.

3. mysqli_fetch_assoc ()를 사용하여 결과를 가로 지르십시오

mysqli_result가 반환 한 결과 세트를 가로 지르는 가장 일반적인 방법은 mysqli_fetch_assoc () 함수를 사용하는 것입니다. 함수는 연관 배열을 반환하고,마다마다 데이터 행을 반환하고 더 이상 데이터가 없을 때까지 포인터를 다음 행으로 이동합니다.

 if ($result->num_rows > 0) {
    // 각 행의 출력 데이터
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 결과";
}

이 예에서 MySQLI_Fetch_Assoc ()는 배열의 키가 필드 이름이고 값은 해당 필드의 값인 연관 배열을 반환합니다.

4. mysqli_fetch_row ()를 사용하여 결과를 가로 지르십시오

mysqli_fetch_assoc () 외에도 mysqli_fetch_row ()를 사용하여 인덱스 배열을 반환 할 수 있으며 각 데이터 행의 필드 값은 배열에 순서대로 저장됩니다. 이 방법을 사용하는 경우 인덱스를 통해 각 필드의 값에 액세스해야합니다.

 if ($result->num_rows > 0) {
    // 각 행의 출력 데이터
    while($row = $result->fetch_row()) {
        echo "id: " . $row[0] . " - Name: " . $row[1] . " - Email: " . $row[2] . "<br>";
    }
} else {
    echo "0 결과";
}

여기서 mysqli_fetch_row ()는 숫자 인덱스 배열을 반환하고 $ row [0]은 ID 필드에 해당하고 $ row [1]이름 , $ row [2]이메일 입니다.

5. mysqli_fetch_object ()를 사용하여 결과를 통과하십시오

개체가 쿼리 결과를 처리하는 데 사용되는 방식에 더 익숙한 경우 mysqli_fetch_object ()를 사용할 수 있습니다. 객체를 반환하고 각 필드는 객체 속성을 통해 액세스 할 수 있습니다.

 if ($result->num_rows > 0) {
    // 각 행의 출력 데이터
    while($row = $result->fetch_object()) {
        echo "id: " . $row->id . " - Name: " . $row->name . " - Email: " . $row->email . "<br>";
    }
} else {
    echo "0 결과";
}

6. 모든 결과를 가로 지르는 또 다른 방법

처리 중에 모든 행의 데이터를보다 유연하게 조작 해야하는 경우 모든 결과를 포함하는 2 차원 배열을 반환하는 MySQLI_FETCH_ALL () 함수를 사용할 수 있습니다.

 $allResults = $result->fetch_all(MYSQLI_ASSOC);

foreach ($allResults as $row) {
    echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

여기서 fetch_all (mysqli_assoc)은 모든 결과를 연관 배열로 반환합니다.

7. 연결을 닫습니다

작업이 완료되면 데이터베이스 연결을 닫아야합니다.

 $conn->close();

요약

위의 방법을 통해 MySQLI_RESULT 함수가 반환 한 모든 결과를 반복 할 수 있습니다. 사용해야 할 방법은 개인의 요구와 데이터 처리 방법에 따라 다릅니다. 배열을 연결하여 필드를 얻으려면 mysqli_fetch_assoc ()를 사용할 수 있습니다. 객체 지향을 선호하는 경우 mysqli_fetch_object ()를 선택할 수 있습니다. 모든 데이터 행을 동시에 처리 해야하는 경우 mysqli_fetch_all ()을 사용할 수 있습니다.

데이터베이스 연결 작업 후에는 자원의 출시를 보장하기 위해 연결을 정시에 닫으십시오.