Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đặt một đối tượng được trả về từ PDO trong lớp của chính nó

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ơ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một luồng đã bị treo trên java.net.SocketInputStream.socketRead0 (Native Method), có ai biết chuyện gì đã xảy ra không?

  2. MySQL REPLACE trong một hàng tăng dần tự động

  3. Sao chép một bảng duy nhất

  4. Di chuyển cơ sở dữ liệu Grails trên máy chủ đã triển khai

  5. Cách tốt nhất để loại bỏ giá trị khỏi trường SET?