현재 위치: > 최신 기사 목록> pdostatement :: fetch () 함수를 사용하여 단일 쿼리 결과를 효율적으로 얻는 방법? 단계 및 예제 분석

pdostatement :: fetch () 함수를 사용하여 단일 쿼리 결과를 효율적으로 얻는 방법? 단계 및 예제 분석

M66 2025-07-04

PHP를 사용하여 데이터베이스를 작동 할 때 PDO (PHP 데이터 객체)는 데이터베이스 액세스를위한 강력하고 안전한 추상화 계층입니다. pdostatement :: fetch () 메소드는 실행 된 쿼리 결과에서 단일 레코드를 얻는 일반적인 메소드입니다. 이 기사는 Fetch () 함수를 효율적으로 사용하여 단계 및 샘플 코드를 포함하여 단일 쿼리 결과를 얻는 방법을 자세히 설명하여 빠르게 시작하고 일반적인 함정을 피할 수 있도록 도와줍니다.


1. pdostatement :: fetch ()

pdostatement :: fetch () 는 pdo preprocessing 문이 실행 된 후 결과 세트에서 다음 레코드를 얻는 데 사용되는 메소드입니다. 전달 된 매개 변수 유형에 따라 레코드의 배열 또는 객체를 반환합니다. fetch ()가 호출 될 때마다 결과 세트 커서는 한 레코드가 아래쪽으로 이동합니다.


2. 단계를 사용하십시오

1 단계 : 데이터베이스에 연결합니다

먼저 PDO를 통해 데이터베이스 연결 인스턴스를 작성해야합니다.

 <?php
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8mb4';
$username = 'your_username';
$password = 'your_password';

try {
    $pdo = new PDO($dsn, $username, $password);
    // 오류 모드를 예외로 설정하십시오
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("데이터베이스 연결에 실패했습니다:" . $e->getMessage());
}
?>

2 단계 : 쿼리를 준비하고 실행하십시오

SQL을 준비하고 전처리 문을 사용하여 실행하십시오.

 <?php
$sql = "SELECT id, name, email FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1]);
?>

3 단계 : Call Fetch ()를 호출하여 단일 결과를 얻으십시오

Fetch ()를 사용하여 단일 데이터를 얻으십시오. 일반적인 반환 유형은 다음과 같습니다.

  • pdo :: fetch_assoc : 연관 배열을 반환합니다

  • pdo :: fetch_obj : 반환 객체

예:

 <?php
// 연관 배열을 얻으십시오
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if ($row) {
    echo "사용자ID: " . $row['id'] . "\n";
    echo "사용자名: " . $row['name'] . "\n";
    echo "우편: " . $row['email'] . "\n";
} else {
    echo "해당 기록이 없습니다。";
}
?>

3. 성능 및 효율적인 사용 제안

  • 단일 결과 만 가져 오기 : fetch ()는 하나의 데이터 만 반환하며, 기본 키 쿼리 또는 하나의 결과 만 필요한 시나리오에 적합하여 리소스 낭비를 유발하기 위해 FetchAll () 을 사용하지 않습니다.

  • 파라미터 바인드 : 전처리 문을 사용하고 파라미터를 바인딩하여 SQL 주입을 방지하고 실행 효율을 향상시킬 수 있습니다.

  • 적절한 추출 방법을 선택하십시오 : 일반적으로 pdo :: fetch_assoc을 사용하여 메모리를 저장하고 필드 이름에 대한 액세스를 용이하게하는 것이 좋습니다.


4. 완전한 예

 <?php
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8mb4';
$username = 'your_username';
$password = 'your_password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "SELECT id, name, email FROM users WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['id' => 1]);

    $user = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($user) {
        echo "사용자ID: " . $user['id'] . "\n";
        echo "사용자名: " . $user['name'] . "\n";
        echo "우편: " . $user['email'] . "\n";
    } else {
        echo "未找到对应사용자。";
    }
} catch (PDOException $e) {
    echo "실수: " . $e->getMessage();
}
?>