현재 위치: > 최신 기사 목록> mysqli_fetch_assoc 및 mysqli_result를 사용하는 방법 :: fetch_column

mysqli_fetch_assoc 및 mysqli_result를 사용하는 방법 :: fetch_column

gitbox 2025-05-26

PHP에서 MySQL 데이터베이스를 운영 할 때 MySQLI 확장자는 쿼리 결과를 얻는 다양한 방법을 제공하며, 그중에 MySQLI_RESULT :: FETCHE_COLUMNMYSQLI_FETCH_ASSOC 가 데이터를 읽는 데 일반적으로 사용됩니다. 그러나 많은 개발자 들이이 두 가지를 함께 사용할 수 있는지 궁금해하고 있습니까? 더 유연한 역할을 수행하기 위해 결합 할 수 있습니까? 이 기사에서는 차이점과 조합 사용법이 예제와 상세하게 설명합니다.


1. mysqli_result :: fetch_columnmysqli_fetch_assoc 의 차이

  • mysqli_result :: fetch_column
    이 메소드는 결과 세트에서 지정된 열의 단일 값을 가져오고 해당 열에 대한 단일 데이터를 반환하는 데 사용됩니다. 일반적으로 특정 열의 값 만 필요할 때 메모리와 코드 복잡성을 저장하는 데 사용됩니다.

  • mysqli_fetch_assoc
    이 함수는 결과 세트에서 데이터 행을 반환하며 연관 배열 형식으로 표시됩니다. 배열의 키 이름은 필드 이름이며 여러 데이터 열을 얻는 데 편리합니다.

간단히 말해서, fetch_column은 단일 열의 데이터 열을 가져오고, fetch_assoc은 전체 행에서 연관 데이터 배열을 가져옵니다.


2. 조합으로 사용할 수 있습니까?

기술적 인 관점에서 MySQLI_RESULT :: FETCH_COLUMN은 MySQLI_Result 클래스의 메소드이며 MySQLI_Fetch_Assoc은 프로세스 지향적 인 기능이며 본질적으로 두 가지 다른 운영 스타일에 속합니다.

  • 객체 지향 스타일을 사용하는 경우 :
    $ result-> fetch_assoc ()$ result-> fetch_column () 과 같은 메소드는 균일하게 사용해야합니다.

  • 프로세스 지향 스타일을 사용하는 경우 :
    mysqli_fetch_assoc ($ result)를 사용해야하며 절차 스타일에는 fetch_column 해당 기능이 없습니다.

따라서 동일한 결과 세트에서 직접적으로 직접 호출 할 수 없으므로 데이터 커서 혼동이 발생합니다.


3. 조합 사용 예제에 대한 실질적인 설명

필드 ID , 이름이메일 로 데이터베이스에서 사용자 테이블 사용자를 쿼리하고 데이터를 얻는 두 가지 방법을 시연한다고 가정 해 봅시다.

 <?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) {
    // 사용fetch_assoc각 데이터 행을 얻으십시오
    while ($row = $result->fetch_assoc()) {
        echo "ID: " . $row['id'] . ",이름: " . $row['name'] . ",우편: " . $row['email'] . "<br>";
    }
    $result->free();
}

// 쿼리를 다시 실행하십시오
$result2 = $mysqli->query($sql);

if ($result2) {
    // 사용fetch_column첫 번째 열을 얻으십시오(id)
    while (($id = $result2->fetch_column(0)) !== null) {
        echo "사용자ID: " . $id . "<br>";
    }
    $result2->free();
}

$mysqli->close();
?>

위의 예에서는 각각 Fetch_assocfetch_column을 사용하기 위해 두 가지 쿼리를 수행했습니다. 이것은 결과 세트 커서의 혼란 문제를 피합니다.


4. 두 사람의 권장 사용

Fetch_assoc을 사용하여 전체 데이터를 먼저 얻은 다음 fetch_column을 사용하여 열을 얻으려면 결과를 배열에 캐시 한 다음 배열을 작동하는 것이 좋습니다.

 <?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

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

$rows = [];
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $rows[] = $row;
    }
    $result->free();
}

// 캐시에서 데이터 열을 가져옵니다
$userIds = array_column($rows, 'id');

foreach ($userIds as $id) {
    echo "사용자ID: $id<br>";
}

$mysqli->close();
?>

이는 중복 쿼리 및 커서 문제를 피하기 위해 효율적이고 편리합니다.


5. 요약

  • mysqli_result :: fetch_columnmysqli_fetch_assoc 은 다른 작동 스타일에 속하며 직접 사용할 수 없습니다.

  • 두 가지를 모두 사용하려면 쿼리를 별도로 실행하거나 Fetch_assoc을 사용하여 모든 것을 얻은 다음 PHP 내장 기능을 사용하여 지정된 열을 추출하는 것이 좋습니다.

  • 이를 결합하여 사용하면 결과 세트 커서 상태에주의를 기울여 데이터 판독의 혼란을 피하십시오.

이 두 가지 방법을 합리적으로 결합하면 데이터베이스 데이터를 처리 할 때보다 유연하고 효율적으로 만들 수 있습니다.