
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