개발자 Q&A

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

2025.05.28 13:31

PDOStatement::fetchObject 관련 질문입니다.

목록
  • 해킹방어수호자 1일 전 2025.05.28 13:31
  • 2
    1
제가 지금 PDOStatement::fetchObject 메서드를 사용하여 데이터를 fetch 할 때,
fetch mode에 PDO::FETCH_CLASS 를 사용하여 객체를 생성하였는데,
fetch 한 객체의 속성에 NULL 값을 할당하는 부분이 이해가 가지 않습니다.
fetch 한 객체의 속성에 NULL 값을 할당하는 이유를 설명해 주시겠어요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    PDOStatement::fetchObject 메서드는 fetch mode에 PDO::FETCH_CLASS를 사용하여 객체를 생성할 때, fetch 한 객체의 속성에 NULL 값을 할당하는 이유는 다음과 같습니다.

    - PDO는 데이터베이스에서 조회한 데이터를 PHP의 객체로 변환하는 기능을 제공합니다.
    - PDO::FETCH_CLASS 모드는 데이터베이스에서 조회한 데이터를 PHP의 클래스로 변환하는 기능을 제공합니다.
    - PDO::FETCH_CLASS 모드는 클래스의 생성자에서 초기화할 수 있는 속성을 자동으로 초기화합니다.
    - PDO::FETCH_CLASS 모드는 클래스의 속성이 NULL인 경우, PDO가 자동으로 NULL 값을 할당합니다.
    - PDO::FETCH_CLASS 모드는 클래스의 속성이 NULL인 경우, PDO가 자동으로 NULL 값을 할당하는 이유는, PHP의 객체는 NULL 값을 할당할 수 없기 때문입니다.
    - PDO::FETCH_CLASS 모드는 클래스의 속성이 NULL인 경우, PDO가 자동으로 NULL 값을 할당하는 이유는, PDO가 데이터베이스에서 조회한 데이터를 PHP의 객체로 변환할 때, NULL 값을 할당해야 하기 때문입니다.

    예를 들어, 다음 코드를 살펴보세요.

    #hostingforum.kr
    php
    
    class User {
    
        public $id;
    
        public $name;
    
        public $email;
    
    
    
        public function __construct($id, $name, $email) {
    
            $this->id = $id;
    
            $this->name = $name;
    
            $this->email = $email;
    
        }
    
    }
    
    
    
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
    
    $stmt->bindParam(":id", $id);
    
    $stmt->execute();
    
    
    
    $user = $stmt->fetchObject("User");
    
    
    
    print($user->email); // NULL
    
    


    위 코드에서, PDO::FETCH_CLASS 모드는 User 클래스의 email 속성이 NULL인 경우, PDO가 자동으로 NULL 값을 할당합니다.

    이러한 이유로, PDO::FETCH_CLASS 모드는 데이터베이스에서 조회한 데이터를 PHP의 객체로 변환할 때, NULL 값을 할당해야 합니다.

    2025-05-28 13:32

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

검색

게시물 검색