Nếu bạn muốn tìm nạp một đối tượng mới của một lớp nhất định, bạn sử dụng PDO::FETCH_CLASS
. Tuy nhiên, nếu bạn muốn ghi các giá trị thuộc tính vào một đối tượng hiện có mà bạn đã có, bạn sử dụng PDO::FETCH_INTO
, như vậy:
$sth->setFetchMode(PDO::FETCH_INTO, $this);
$sth->execute();
$sth->fetch();
Lưu ý rằng các thuộc tính bạn muốn ghi vào phải có thể truy cập công khai, trực tiếp hoặc thông qua __set()
phương pháp ma thuật.
Tuy nhiên, bạn nên cân nhắc kỹ câu trả lời của @ Truth. Thiết kế không tốt nếu có cùng một lớp (ít hơn nhiều cùng một đối tượng !) chịu trách nhiệm về cả truy cập cơ sở dữ liệu và đại diện cho một bản ghi. Có một lớp chịu trách nhiệm quản lý hồ sơ ủy quyền và một lớp khác tự quản lý hồ sơ.