현재 위치: > 최신 기사 목록> 쿼리 결과를 올바르게 가로 지르기 위해 Fetch_assoc ()와 협력하기 위해 루프를 사용합니다.

쿼리 결과를 올바르게 가로 지르기 위해 Fetch_assoc ()와 협력하기 위해 루프를 사용합니다.

M66 2025-06-03

MySQL Extension은 MySQL 데이터베이스 작업에 PHP를 사용할 때 가장 일반적으로 사용되는 도구 중 하나입니다. 특히 쿼리 결과를 처리 할 때 mysqli_result 객체, fetch_assoc () 메소드와 루프 의 조합은 효율적이고 일반적인 트래버스 방법입니다. 이 기사는 올바르게 사용하는 방법에 대한 세부 정보를 제공하고 고려 사항 및 샘플 코드를 제공합니다.

1 ??? mysqli_result 란 무엇입니까?

mysqli_query ()선택 쿼리를 실행하면 결과는 mysqli_result 객체입니다. 이 개체에는 쿼리에서 반환 된 모든 데이터 행이 포함되어 있습니다. 이 데이터에 액세스하려면 fetch_assoc () 와 같은 특수 메소드를 사용해야합니다.

2 ?? fetch_assoc () 란 무엇입니까?

fetch_assoc ()mysqli_result 에서 제공하는 메소드입니다. 결과 세트에서 다음 행을 꺼내고 연관 배열을 반환하는 데 사용됩니다. 배열의 키는 필드 이름이고 값은 해당 필드 값입니다. 각 통화는 더 이상 줄이 리턴되지 않을 때까지 한 줄을 아래로 이동합니다.

3 ???? 루프를 사용하여 쿼리 결과를 가로 지르십시오

일반적으로 말하면, 우리는 fetch_assoc () 와 결합하여 while 루프를 사용하여 결과 세트 세트에서 데이터를 라인별로 얻습니다. Fetch_assoc ()는 한 번에 한 줄만 반환하고 모든 줄을 완료하려면 지속적인 호출이 필요하기 때문입니다.

샘플 코드 :

 <?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

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

// 쿼리를 실행하십시오
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);

if ($result instanceof mysqli_result) {
    // 트래버스 쿼리 결과
    while ($row = $result->fetch_assoc()) {
        echo 'ID: ' . $row['id'] . '<br>';
        echo '이름: ' . $row['name'] . '<br>';
        echo '우편: ' . $row['email'] . '<br>';
        echo '<a href="https://m66.net/user/' . $row['id'] . '">세부 사항을 확인하십시오</a><br><br>';
    }

    // 결과 세트를 릴리스하십시오
    $result->free();
} else {
    echo '쿼리가 실패했습니다: ' . $mysqli->error;
}

// 연결을 닫으십시오
$mysqli->close();
?>

4 ?? 메모

? 쿼리가 성공했는지 확인하십시오 <br> $ result-> fetch_assoc ()을 호출하기 전에 $ result가 실제로 거짓이 아닌 mysqli_result 객체인지 확인하십시오.

? 릴리스 결과 세트 <br> Traversal 후 $ result-> free ()를 호출하여 메모리 누출을 피하기 위해 리소스를 해제하십시오.

? 데이터베이스 연결 <br>를 닫습니다 데이터베이스를 사용한 후 $ mysqli-> close ()를 호출하여 연결을 닫습니다.

? SQL 주입 방지 <br> 사용자 입력이 쿼리에 관여하는 경우 문자열을 직접 접합하는 대신 전처리 문 ( repay + bind_param )을 사용하는 것이 좋습니다.