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

OOP PHP PDO Dự án đầu tiên của tôi, tôi đang làm đúng chứ?

Tôi sẽ bắt đầu bằng cách sử dụng mô hình / người lập bản đồ. Đó là một cách rất đơn giản để lấy các đối tượng thuần túy và có thể duy trì chúng trong cơ sở dữ liệu. Nó cũng tránh trộn lẫn các lệnh gọi cơ sở dữ liệu và mã (logic bền vững) với chức năng (ứng dụng hoặc logic nghiệp vụ). Ví dụ đơn giản:

class User {
    public $id;
    public $username;

}

class UserMapper {
    /**
     * @param User $user
     */
    public function save(User $user) {

        if(isset($user->id)) {
            $statement = "Update users set username = ? where id = ?"
        } else {
            $statement = "insert into users set username = ?, id = ?"
        }
        $instance = db::getInstance();
        $sth = $instance->prepare($statement );
        $values_a = array($user->username, $user->id);
        $db_result = $sth->execute($values_a);
    }

    /**
     * @param int $userId
     * @return User
     */
    public function load($userId) {
        $statement = "select * from users where id = ?";
        $instance = db::getInstance();
        $sth = $instance->prepare($statement );
        $values_a = array($user->id);
        $db_result = $sth->execute($values_a);
        $returnUser = new User();
        $returnUser ->id       = $db_result[0]['id'];
        $returnUser ->username = $db_result[0]['username'];
        return $returnUser;
    }
}

Tôi cũng khuyên bạn nên sử dụng getters / setters, thay vì truy cập trực tiếp thành viên, nhưng điều này chỉ để đơn giản hóa mã ... Khi bạn phát triển nhiều mô hình / người lập bản đồ hơn, bạn sẽ tìm thấy chức năng lập bản đồ chung (lưu, tải, xóa, tìm kiếm) và bạn có thể cấu trúc lại mã của bạn để chứa logic chung để bạn không có nhiều copypasta.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào các trang web du lịch khóa phòng?

  2. Bộ lọc MySQL JSON_CONTAINS Bất kỳ giá trị nào từ Mảng

  3. Làm cách nào tôi có thể viết một hàm do người dùng xác định trong MySQL để khi tôi xóa một hàng khỏi một bảng, hàng cụ thể đó từ một bảng khác cũng bị xóa?

  4. Django không thể tìm thấy mô-đun python MySQLdb

  5. Tôi không thể biết mình đã phạm phải sai lầm gì khi thực hiện Truy vấn MYSQL này