현재 위치: > 최신 기사 목록> mysqli_result :: fetch_column을 사용할 때 중복 데이터를 피하는 방법

mysqli_result :: fetch_column을 사용할 때 중복 데이터를 피하는 방법

gitbox 2025-05-29

PHP 개발에서는 데이터베이스 작업에 MySQLI 확장을 사용하는 것이 매우 일반적입니다. mysqli_result :: fetch_column 함수는 쿼리 결과에서 단일 열 데이터를 추출하는 간단한 방법이지만 실제로 사용하면 많은 개발자가 데이터 복제 문제를 겪게됩니다. 이 기사는이 현상에 대한 응답으로 중복 데이터의 원인을 분석하고 모든 사람 이이 문제를 피할 수 있도록 효과적인 솔루션 및 샘플 코드를 제공합니다.


1. 중복 데이터 생성의 이유

  1. 데이터베이스 쿼리 문 <br>의 부적절한 설계 여러 번, 중복 데이터의 근본 원인은 고유 한 쿼리를 사용하지 않는 것과 같은 SQL 쿼리 자체 또는 연결 쿼리 중에 테이블 연결 조건 오류가 데이터의 복제를 유발합니다.

  2. 데이터 추출 방법 오류 <br> fetch_column을 사용하는 경우, 데이터가 루프에서 불합리하게 처리되면 반복 출력으로 이어질 수도 있습니다.

  3. 데이터 캐시 또는 루프 로직 결함 <br> 배열에 저장된 후 데이터가 올바르게 중복 제거되지 않거나 루프 트래버스 로직에 문제가있는 경우 중복이 발생합니다.


2. 중복 데이터를 피하는 방법

1. SQL 쿼리 최적화

가장 직접적이고 효율적인 방법은 SQL 문에서 망상하는 것입니다.

 $sql = "SELECT DISTINCT column_name FROM table_name WHERE conditions";
$result = $mysqli->query($sql);

이렇게하면 모든 데이터가 반환 된 결과 세트에서 고유한지 확인합니다.

2. mysqli_result :: fetch_column을 합리적으로 사용하십시오

fetch_column은 현재 행에서 데이터 열만 추출합니다. 루프라고 부르면 데이터 행을 행으로 얻을 수 있지만 다음에주의를 기울여야합니다.

  • 중복 호출이 중복 출력을 초래하지 않도록하십시오.

  • 결과 세트를 제대로 자유롭게 해제하거나 재사용하지 마십시오.

3. PHP 수준에서의 중복 제거

데이터베이스 계층이 고유성을 보장 할 수없는 경우 PHP 계층은 배열 중복 제거를 사용할 수 있습니다.

 $data = [];
while ($value = $result->fetch_column()) {
    $data[] = $value;
}
$data = array_unique($data);  // 중복 값을 제거하십시오

3. 샘플 코드

중복 데이터를 피하는 방법을 보여주는 완전한 예는 다음과 같습니다.

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

if ($mysqli->connect_errno) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 사용DISTINCT중복 데이터를 피하십시오
$sql = "SELECT DISTINCT user_email FROM users WHERE status = 'active'";
$result = $mysqli->query($sql);

if ($result) {
    $emails = [];
    while ($email = $result->fetch_column()) {
        $emails[] = $email;
    }

    // 무게를 다시 제거하십시오(예방하다SQL성명서는 작동하지 않습니다)
    $emails = array_unique($emails);

    foreach ($emails as $email) {
        echo $email . "<br>";
    }

    $result->free();
} else {
    echo "쿼리가 실패했습니다: " . $mysqli->error;
}

$mysqli->close();
?>

4. 요약

  • SQL을 설계 할 때는 중복 제거에 별개의 사용이 선호됩니다.

  • fetch_column은 단일 열 데이터를 행으로 추출하고 합리적으로 호출합니다.

  • PHP 측은 Array_unique를 보조 중복 제거 방법으로 사용합니다.

  • 의도하지 않은 중복 행을 피하려면 관련 쿼리 및 데이터 구조를 확인하십시오.

위의 기술을 통해 mysqli_result :: fetch_column을 사용할 때의 중복 데이터 문제를 기본적으로 제거 할 수 있으며 코드 견고성 및 데이터 정확도를 개선 할 수 있습니다.