PHP对象编程如何在MYSQL中保存数据

时间:2015-01-06 00:51:51

标签: php mysql

我开始使用PHP面向对象(现在几个月了),我想知道什么时候应该将更改保存到我的数据库中?
让我更具体一点: 让我们说我有一个名为book的对象,我已将其保存在MYSQL数据库ID,名称和价格中

class book{
  private $id;
  private $name;
  private $price;

  /*Getters,Setters and other stuff*/
}

现在我想知道,如果我需要编辑数据库中的数据,例如更改书名,我显然会传递一个表单,然后从中接收数据,创建一个类书的实例并编辑此实例的$ name。 现在在这样的setter方法中编辑MYSQL数据是否正确?

class book{
  private $id;
  private $name;
  private $price;

    public setNewName($newname){ 
       $this->name = $newname;
       $query = "UPDATE ETC ETC...";
    }
}

我不确定的是,在编辑对象的同一时刻编辑数据库中的数据是否是一种好的做法,还是在更新数据库的destruct方法中使用查询会更好?如果有更好的解决方案,甚至是另一种解决方案。

3 个答案:

答案 0 :(得分:0)

您可以阅读Active Record。它是MODEL类本身知道如何更新数据库的模式。或者你可以研究DAO (Data Access Object),这是一个模式,你有一个接收对象的类并更新数据库。

答案 1 :(得分:0)

通过阅读更多关于Object-relational mapping(也称为ORM)的内容,您的疑虑将被清除。

它被广泛用于许多PHP框架中,而不仅仅是它们。

在GitHub上查看doctrine2

答案 2 :(得分:0)

您可以使用Redbean ORM快速启动并运行以处理所有血腥细节。除了存在用户和密码的数据库之外,它不需要任何MySql设置。它将PHP类动态映射到MySql表/记录中。