개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.09 18:18

PDOStatement::setFetchMode 사용법에 대해 질문합니다.

목록
  • 코드주술사 6시간 전 2025.08.09 18:18 새글
  • 2
    1
저는 PHP PDOStatement::setFetchMode 함수를 사용하여 데이터를 가져올 때 fetch mode를 설정하려고 합니다. 하지만 fetch mode의 종류와 각 fetch mode의 특징에 대해 잘 이해하지 못하고 있습니다. 특히, PDO::FETCH_ASSOC, PDO::FETCH_BOTH, PDO::FETCH_NUM, PDO::FETCH_OBJ 등 각 fetch mode의 차이점과 사용 예시를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  6시간 전



    PDOStatement::setFetchMode 함수는 데이터베이스에서 데이터를 가져올 때 fetch mode를 설정하는 데 사용됩니다. fetch mode는 데이터를 가져올 때의 데이터 형식을 결정합니다.

    - PDO::FETCH_ASSOC: 각 열이 이름으로 된 배열로 데이터를 가져옵니다. 예를 들어, 'id' => 1, 'name' => 'John'과 같은 형식입니다.
    - PDO::FETCH_BOTH: 각 열이 이름과 인덱스로 된 배열로 데이터를 가져옵니다. 예를 들어, [0 => 'id', 1 => 'name'] => ['id' => 1, 'name' => 'John']과 같은 형식입니다.
    - PDO::FETCH_NUM: 각 열이 인덱스로 된 배열로 데이터를 가져옵니다. 예를 들어, [0 => 1, 1 => 'John']과 같은 형식입니다.
    - PDO::FETCH_OBJ: 각 열이 객체의 속성으로 데이터를 가져옵니다. 예를 들어, stdClass Object([id] => 1, [name] => 'John')과 같은 형식입니다.

    각 fetch mode의 사용 예시는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $stmt = $pdo->prepare('SELECT id, name FROM users');
    
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    
    $result = $stmt->fetchAll();
    
    print_r($result); // ['id' => 1, 'name' => 'John']
    
    
    
    $stmt = $pdo->prepare('SELECT id, name FROM users');
    
    $stmt->setFetchMode(PDO::FETCH_BOTH);
    
    $result = $stmt->fetchAll();
    
    print_r($result); // [[0 => 'id', 1 => 'name'] => ['id' => 1, 'name' => 'John']]
    
    
    
    $stmt = $pdo->prepare('SELECT id, name FROM users');
    
    $stmt->setFetchMode(PDO::FETCH_NUM);
    
    $result = $stmt->fetchAll();
    
    print_r($result); // [[0 => 1, 1 => 'John']]
    
    
    
    $stmt = $pdo->prepare('SELECT id, name FROM users');
    
    $stmt->setFetchMode(PDO::FETCH_OBJ);
    
    $result = $stmt->fetchAll();
    
    print_r($result); // stdClass Object([id] => 1, [name] => 'John')
    
    


    각 fetch mode의 특징을 이해하고 적절하게 사용하면 데이터베이스에서 데이터를 가져올 때 더 효율적으로 데이터를 처리할 수 있습니다.

    2025-08-09 18:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,831건 / 3 페이지

검색

게시물 검색