PHP对象编程如何在MYSQL中保存数据
PHP Object Programming how to save data in MYSQL
我开始使用 PHP 面向对象(现在已经几个月了),我想知道什么时候应该将更改保存到我的数据库中?
让我更具体一点:
假设我有一个名为 book 的对象,我已将其保存在 MYSQL 数据库 ID、名称和价格
中
class book{
private $id;
private $name;
private $price;
/*Getters,Setters and other stuff*/
}
现在我想知道,如果我需要编辑数据库中的数据,例如更改书名,我显然会传递一个表单,然后从中接收数据,创建一个实例class 预订并编辑此实例的 $name。
现在这样在 setter 方法中编辑 MYSQL 数据是否正确?
class book{
private $id;
private $name;
private $price;
public setNewName($newname){
$this->name = $newname;
$query = "UPDATE ETC ETC...";
}
}
我不确定的是,在我编辑对象的同时编辑数据库中的数据是否是一个好习惯,或者在更新数据库的 destruct 方法中使用查询会更好吗?如果有更好的解决方案,甚至是另一种解决方案。
您可以阅读有关 Active Record
的内容。在这种模式下,MODEL class 本身知道如何更新数据库。或者你可以研究 DAO (Data Access Object)
,这是一种模式,你有一个 class 接收对象并更新数据库。
阅读更多关于 Object-relational mapping(也称为 ORM)的内容,您的疑虑就会消除。
它被广泛用于许多 PHP 框架,而不仅仅是它们。
在 GitHub 上查看 doctrine2。
您可以起床并 运行 快速使用 Redbean ORM 处理所有血腥细节。它不需要任何 MySql 设置,除了带有用户和密码的数据库。它将 PHP 类 动态映射到 MySql tables/records.
我开始使用 PHP 面向对象(现在已经几个月了),我想知道什么时候应该将更改保存到我的数据库中?
让我更具体一点:
假设我有一个名为 book 的对象,我已将其保存在 MYSQL 数据库 ID、名称和价格
class book{
private $id;
private $name;
private $price;
/*Getters,Setters and other stuff*/
}
现在我想知道,如果我需要编辑数据库中的数据,例如更改书名,我显然会传递一个表单,然后从中接收数据,创建一个实例class 预订并编辑此实例的 $name。 现在这样在 setter 方法中编辑 MYSQL 数据是否正确?
class book{
private $id;
private $name;
private $price;
public setNewName($newname){
$this->name = $newname;
$query = "UPDATE ETC ETC...";
}
}
我不确定的是,在我编辑对象的同时编辑数据库中的数据是否是一个好习惯,或者在更新数据库的 destruct 方法中使用查询会更好吗?如果有更好的解决方案,甚至是另一种解决方案。
您可以阅读有关 Active Record
的内容。在这种模式下,MODEL class 本身知道如何更新数据库。或者你可以研究 DAO (Data Access Object)
,这是一种模式,你有一个 class 接收对象并更新数据库。
阅读更多关于 Object-relational mapping(也称为 ORM)的内容,您的疑虑就会消除。
它被广泛用于许多 PHP 框架,而不仅仅是它们。
在 GitHub 上查看 doctrine2。
您可以起床并 运行 快速使用 Redbean ORM 处理所有血腥细节。它不需要任何 MySql 设置,除了带有用户和密码的数据库。它将 PHP 类 动态映射到 MySql tables/records.